diff --git a/socks.go b/socks.go index 858e725..1bb4533 100644 --- a/socks.go +++ b/socks.go @@ -261,6 +261,9 @@ func (c *socks4Connector) Connect(conn net.Conn, addr string) (net.Conn, error) if err != nil { return nil, err } + if len(taddr.IP) == 0 { + taddr.IP = net.IPv4(0, 0, 0, 0) + } req := gosocks4.NewRequest(gosocks4.CmdConnect, &gosocks4.Addr{ diff --git a/vendor/github.com/ginuerzh/gosocks4/socks4.go b/vendor/github.com/ginuerzh/gosocks4/socks4.go index 52b32e4..2377ac5 100644 --- a/vendor/github.com/ginuerzh/gosocks4/socks4.go +++ b/vendor/github.com/ginuerzh/gosocks4/socks4.go @@ -56,7 +56,7 @@ func (addr *Addr) Decode(b []byte) error { addr.Port = binary.BigEndian.Uint16(b[0:2]) addr.Host = net.IP(b[2 : 2+net.IPv4len]).String() - if b[2]|b[3]|b[4] == 0 { + if b[2]|b[3]|b[4] == 0 && b[5] != 0 { addr.Type = AddrDomain } diff --git a/vendor/vendor.json b/vendor/vendor.json index 3691d4f..017937c 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -81,10 +81,10 @@ "revisionTime": "2016-08-31T15:17:26Z" }, { - "checksumSHA1": "aIhLeVAIrsjs63CwqmU3+GU8yT4=", + "checksumSHA1": "AqX1ZPaQtMCpfiTiA2zGmWadYl0=", "path": "github.com/ginuerzh/gosocks4", - "revision": "fc196f9d34e35f19a813bff2f092a275131c23bc", - "revisionTime": "2017-02-09T14:09:51Z" + "revision": "c3a6700bad67bd29718fd19212b3dd934aea89b3", + "revisionTime": "2017-09-04T03:46:09Z" }, { "checksumSHA1": "4JEexBJToQeQm7fAo2PHVdCU3zM=",