]> Cypherpunks repositories - gostls13.git/commitdiff
net: give C.getaddrinfo a hint that we only want SOCK_STREAM answers
authorIan Lance Taylor <iant@golang.org>
Fri, 9 Aug 2013 16:23:27 +0000 (09:23 -0700)
committerIan Lance Taylor <iant@golang.org>
Fri, 9 Aug 2013 16:23:27 +0000 (09:23 -0700)
This should be more efficient everywhere, and appears to be
required on Solaris.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/12583046

src/pkg/net/cgo_unix.go

index 0c3c56936ec02f556b0f9d4ee430a3e14361b2e3..c39ada6ae33f664567fb3a3d2894a02fc003c635 100644 (file)
@@ -83,6 +83,7 @@ func cgoLookupIPCNAME(name string) (addrs []IP, cname string, err error, complet
        var hints C.struct_addrinfo
 
        hints.ai_flags = cgoAddrInfoFlags()
+       hints.ai_socktype = C.SOCK_STREAM
 
        h := C.CString(name)
        defer C.free(unsafe.Pointer(h))
@@ -109,7 +110,7 @@ func cgoLookupIPCNAME(name string) (addrs []IP, cname string, err error, complet
                }
        }
        for r := res; r != nil; r = r.ai_next {
-               // Everything comes back twice, once for UDP and once for TCP.
+               // We only asked for SOCK_STREAM, but check anyhow.
                if r.ai_socktype != C.SOCK_STREAM {
                        continue
                }