def initialize(host=nil, port=0, local_host=nil, local_port=nil)
if host.is_a?(SOCKSConnectionPeerAddress)
socks_peer = host
socks_server = socks_peer.socks_server
socks_port = socks_peer.socks_port
socks_ignores = []
host = socks_peer.peer_host
else
socks_server = self.class.socks_server
socks_port = self.class.socks_port
socks_ignores = self.class.socks_ignores
end
if socks_server and socks_port and not socks_ignores.include?(host)
Socksify::debug_notice "Connecting to SOCKS server #{socks_server}:#{socks_port}"
initialize_tcp socks_server, socks_port
socks_authenticate unless @@socks_version =~ /^4/
if host
socks_connect(host, port)
end
else
Socksify::debug_notice "Connecting directly to #{host}:#{port}"
initialize_tcp host, port, local_host, local_port
Socksify::debug_debug "Connected to #{host}:#{port}"
end
end