diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2013-08-09 20:51:16 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2013-08-09 20:51:16 +0000 |
commit | 537a6f7b4752b04a5ce4cb1fb96f1f1e9c407402 (patch) | |
tree | 64e1feace617cc6d508232460f43670bb612c5e2 /libgo/go/net | |
parent | cc277e8fd925746e6113a533cec3fbac51c6963a (diff) | |
download | gcc-537a6f7b4752b04a5ce4cb1fb96f1f1e9c407402.zip gcc-537a6f7b4752b04a5ce4cb1fb96f1f1e9c407402.tar.gz gcc-537a6f7b4752b04a5ce4cb1fb96f1f1e9c407402.tar.bz2 |
net: give C.getaddrinfo a hint that we only want SOCK_STREAM answers
This should be more efficient everywhere, and appears to be
required on Solaris.
Copied from master repository.
From-SVN: r201637
Diffstat (limited to 'libgo/go/net')
-rw-r--r-- | libgo/go/net/cgo_unix.go | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libgo/go/net/cgo_unix.go b/libgo/go/net/cgo_unix.go index a4d96a8..ce54d82 100644 --- a/libgo/go/net/cgo_unix.go +++ b/libgo/go/net/cgo_unix.go @@ -103,6 +103,7 @@ func cgoLookupIPCNAME(name string) (addrs []IP, cname string, err error, complet var hints syscall.Addrinfo hints.Ai_flags = int32(cgoAddrInfoFlags()) + hints.Ai_socktype = syscall.SOCK_STREAM h := syscall.StringBytePtr(name) syscall.Entersyscall() @@ -130,7 +131,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 != syscall.SOCK_STREAM { continue } |