class Async::HTTP::Protocol::HTTP2::Request

def send_response(response)

def send_response(response)
	if response.nil?
		return @stream.send_headers(nil, NO_RESPONSE, ::Protocol::HTTP2::END_STREAM)
	end
	
	protocol_headers = [
		[STATUS, response.status],
	]
	
	if protocol = response.protocol
		protocol_headers << [PROTOCOL, protocol]
	end
	
	if length = response.body&.length
		protocol_headers << [CONTENT_LENGTH, length]
	end
	
	headers = ::Protocol::HTTP::Headers::Merged.new(protocol_headers, response.headers)
	
	if body = response.body and !self.head?
		@stream.send_headers(nil, headers)
		@stream.send_body(body)
	else
		# Ensure the response body is closed if we are ending the stream:
		response.close
		
		@stream.send_headers(nil, headers, ::Protocol::HTTP2::END_STREAM)
	end
end