From: Brad Fitzpatrick Date: Mon, 14 Dec 2015 18:22:23 +0000 (+0000) Subject: net: make LookupPort with empty service mean 0 X-Git-Tag: go1.6beta1~97 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5a88e54fdafb7742e4429fcf9e93019dd58df7b9;p=gostls13.git net: make LookupPort with empty service mean 0 Fixes #13610 Change-Id: I9c8f924dc1ad515a9697291e981ece34fdbec8b7 Reviewed-on: https://go-review.googlesource.com/17755 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- diff --git a/src/net/lookup.go b/src/net/lookup.go index 6e0cf62aec..7aa111ba92 100644 --- a/src/net/lookup.go +++ b/src/net/lookup.go @@ -123,6 +123,11 @@ func lookupIPDeadline(host string, deadline time.Time) (addrs []IPAddr, err erro // LookupPort looks up the port for the given network and service. func LookupPort(network, service string) (port int, err error) { + if service == "" { + // Lock in the legacy behavior that an empty string + // means port 0. See Issue 13610. + return 0, nil + } port, _, ok := dtoi(service, 0) if !ok && port != big && port != -big { port, err = lookupPort(network, service) diff --git a/src/net/lookup_test.go b/src/net/lookup_test.go index 07b3686d50..fa2c6367db 100644 --- a/src/net/lookup_test.go +++ b/src/net/lookup_test.go @@ -591,6 +591,12 @@ var lookupPortTests = []struct { {"tcp", "65536", 0, false}, {"udp", "-1", 0, false}, {"udp", "65536", 0, false}, + + // Issue 13610: LookupPort("tcp", "") + {"tcp", "", 0, true}, + {"tcp6", "", 0, true}, + {"tcp4", "", 0, true}, + {"udp", "", 0, true}, } func TestLookupPort(t *testing.T) {