diff --git a/common/net/address.go b/common/net/address.go index a5f7c160..1567e4d1 100644 --- a/common/net/address.go +++ b/common/net/address.go @@ -121,6 +121,11 @@ func IPAddress(ip []byte) Address { } // DomainAddress creates an Address with given domain. +// This is an internal function that forcibly converts a string to domain. +// It's mainly used in test files and mux. +// Unless you have a specific reason, use net.ParseAddress instead, +// as this function does not check whether the input is an IP address. +// Otherwise, you will get strange results like domain: 1.1.1.1 func DomainAddress(domain string) Address { return domainAddress(domain) } diff --git a/proxy/socks/protocol.go b/proxy/socks/protocol.go index fe13f24f..9bccf607 100644 --- a/proxy/socks/protocol.go +++ b/proxy/socks/protocol.go @@ -74,7 +74,7 @@ func (s *ServerSession) handshake4(cmd byte, reader io.Reader, writer io.Writer) if err != nil { return nil, errors.New("failed to read domain for socks 4a").Base(err) } - address = net.DomainAddress(domain) + address = net.ParseAddress(domain) } switch cmd {