Module: HTTPX::Plugins::H2C::InstanceMethods

Defined in:
lib/httpx/plugins/h2c.rb

Instance Method Summary collapse

Instance Method Details

#send_requests(*requests) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/httpx/plugins/h2c.rb', line 29

def send_requests(*requests)
  upgrade_request, *remainder = requests

  return super unless VALID_H2C_VERBS.include?(upgrade_request.verb) && upgrade_request.scheme == "http"

  connection = pool.find_connection(upgrade_request.uri, upgrade_request.options)

  return super if connection && connection.upgrade_protocol == "h2c"

  # build upgrade request
  upgrade_request.headers.add("connection", "upgrade")
  upgrade_request.headers.add("connection", "http2-settings")
  upgrade_request.headers["upgrade"] = "h2c"
  upgrade_request.headers["http2-settings"] = HTTP2Next::Client.settings_header(upgrade_request.options.http2_settings)

  super(upgrade_request, *remainder)
end