]> Cypherpunks repositories - gostls13.git/commitdiff
net: make LookupPort with empty service mean 0
authorBrad Fitzpatrick <bradfitz@golang.org>
Mon, 14 Dec 2015 18:22:23 +0000 (18:22 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 14 Dec 2015 20:41:36 +0000 (20:41 +0000)
Fixes #13610

Change-Id: I9c8f924dc1ad515a9697291e981ece34fdbec8b7
Reviewed-on: https://go-review.googlesource.com/17755
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/net/lookup.go
src/net/lookup_test.go

index 6e0cf62aec12cd813ad6ddbe65321691c4290219..7aa111ba929b864802b268c60140ef5185487c11 100644 (file)
@@ -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)
index 07b3686d50d84506f24f28667f0929223812a2fc..fa2c6367db990092f0d0b2efdda3e3e2b4e62820 100644 (file)
@@ -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) {