aboutsummaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2013-08-09 20:51:16 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2013-08-09 20:51:16 +0000
commit537a6f7b4752b04a5ce4cb1fb96f1f1e9c407402 (patch)
tree64e1feace617cc6d508232460f43670bb612c5e2 /libgo
parentcc277e8fd925746e6113a533cec3fbac51c6963a (diff)
downloadgcc-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')
-rw-r--r--libgo/go/net/cgo_unix.go3
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
}