Module: HideMyAss::HTTP

Defined in:
lib/hidemyass/http.rb

Class Method Summary collapse

Class Method Details

.start(address, *arg, &block) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/hidemyass/http.rb', line 3

def HTTP.start(address, *arg, &block)
  HideMyAss.log 'Connecting to ' + address + ' through:'
  response = nil
  
  if HideMyAss.options[:local]
    begin
      HideMyAss.log 'localhost...'
      response = Net::HTTP.start(address, *arg, &block)
      if response.class.ancestors.include?(Net::HTTPSuccess)
        return response
      end
    rescue *HTTP_ERRORS => error
      HideMyAss.log error
    end
  end
  
  HideMyAss.proxies.each do |proxy|
    begin
      HideMyAss.log proxy[:host] + ':' + proxy[:port]
      response = Net::HTTP::Proxy(proxy[:host], proxy[:port]).start(address, *arg, &block)
      HideMyAss.log response.class.to_s
      if response.class.ancestors.include?(Net::HTTPSuccess)
        return response
      end
    rescue *HTTP_ERRORS => error
      HideMyAss.log error
    end
  end

  response
end