class HTTParty::ConnectionAdapter

def connection

def connection
  host = clean_host(uri.host)
  port = uri.port || (uri.scheme == 'https' ? 443 : 80)
  if options.key?(:http_proxyaddr)
    http = Net::HTTP.new(
      host,
      port,
      options[:http_proxyaddr],
      options[:http_proxyport],
      options[:http_proxyuser],
      options[:http_proxypass]
    )
  else
    http = Net::HTTP.new(host, port)
  end
  http.use_ssl = ssl_implied?(uri)
  attach_ssl_certificates(http, options)
  if add_timeout?(options[:timeout])
    http.open_timeout = options[:timeout]
    http.read_timeout = options[:timeout]
    from_ruby_version('2.6.0', option: :write_timeout, warn: false) do
      http.write_timeout = options[:timeout]
    end
  end
  if add_timeout?(options[:read_timeout])
    http.read_timeout = options[:read_timeout]
  end
  if add_timeout?(options[:open_timeout])
    http.open_timeout = options[:open_timeout]
  end
  if add_timeout?(options[:write_timeout])
    from_ruby_version('2.6.0', option: :write_timeout) do
      http.write_timeout = options[:write_timeout]
    end
  end
  if add_max_retries?(options[:max_retries])
    from_ruby_version('2.5.0', option: :max_retries) do
      http.max_retries = options[:max_retries]
    end
  end
  if options[:debug_output]
    http.set_debug_output(options[:debug_output])
  end
  if options[:ciphers]
    http.ciphers = options[:ciphers]
  end
  # Bind to a specific local address or port
  #
  # @see https://bugs.ruby-lang.org/issues/6617
  if options[:local_host]
    from_ruby_version('2.0.0', option: :local_host) do
      http.local_host = options[:local_host]
    end
  end
  if options[:local_port]
    from_ruby_version('2.0.0', option: :local_port) do
      http.local_port = options[:local_port]
    end
  end
  http
end