Class: NetHttpSocks

Inherits:
Faraday::Adapter::NetHttp
  • Object
show all
Defined in:
lib/faraday/adapter/net_http_socks.rb

Constant Summary collapse

SOCKS_SCHEMES =
['socks', 'socks4', 'socks5']

Instance Method Summary collapse

Instance Method Details

#net_http_connection(env) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/faraday/adapter/net_http_socks.rb', line 4

def net_http_connection(env)
  proxy = env[:request][:proxy]

  net_http_class = if proxy
                     if SOCKS_SCHEMES.include?(proxy[:uri].scheme)
                       Net::HTTP::SOCKSProxy(proxy[:uri].host, proxy[:uri].port)
                     else
                       Net::HTTP::Proxy(proxy[:uri].host, proxy[:uri].port, proxy[:user], proxy[:password])
                     end
                   else
                     Net::HTTP
                   end

  net_http_class.new(env[:url].host, env[:url].port)
end