20 lines
573 B
Ruby
20 lines
573 B
Ruby
require "net/http"
|
|
require "proxifier/proxy"
|
|
|
|
module Proxifier
|
|
class HTTPProxy < Proxy
|
|
def do_proxify(socket, host, port)
|
|
return if query_options["tunnel"] == "false"
|
|
|
|
socket << "CONNECT #{host}:#{port} HTTP/1.1\r\n"
|
|
socket << "Host: #{host}:#{port}\r\n"
|
|
socket << "Proxy-Authorization: Basic #{["#{user}:#{password}"].pack("m").chomp}\r\n" if user
|
|
socket << "\r\n"
|
|
|
|
buffer = Net::BufferedIO.new(socket)
|
|
response = Net::HTTPResponse.read_new(buffer)
|
|
response.error! unless response.is_a?(Net::HTTPOK)
|
|
end
|
|
end
|
|
end
|