module HTTPX::Plugins::Proxy::Socks4::Packet

def connect(parameters, uri)

def connect(parameters, uri)
  packet = [VERSION, CONNECT, uri.port].pack("CCn")
  case parameters.uri.scheme
  when "socks4"
    socks_host = uri.host
    begin
      ip = IPAddr.new(socks_host)
      packet << ip.hton
    rescue IPAddr::InvalidAddressError
      socks_host = Resolv.getaddress(socks_host)
      retry
    end
    packet << [parameters.username].pack("Z*")
  when "socks4a"
    packet << "\x0\x0\x0\x1" << [parameters.username].pack("Z*") << uri.host << "\x0"
  end
  packet
end