diff options
author | Mikio Hara <mikioh.mikioh@gmail.com> | 2014-05-13 00:38:36 +0900 |
---|---|---|
committer | Mikio Hara <mikioh.mikioh@gmail.com> | 2014-05-13 00:38:36 +0900 |
commit | c8952f94ec83abe95b4a3bebc04e1881f21ce5c2 (patch) | |
tree | 1970c7d8aa4db15aabb6360f3c032764f5e5e952 /src | |
parent | 45935695f50c9f0ab930351d447e8e523e9df5e6 (diff) | |
download | go-c8952f94ec83abe95b4a3bebc04e1881f21ce5c2.tar.gz |
net: make use of SO_LINGER_SEC on darwin
Fixes issue 7971.
LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://codereview.appspot.com/92210044
Diffstat (limited to 'src')
-rw-r--r-- | src/pkg/net/sockopt_posix.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/pkg/net/sockopt_posix.go b/src/pkg/net/sockopt_posix.go index 921918c37..0bfaecea4 100644 --- a/src/pkg/net/sockopt_posix.go +++ b/src/pkg/net/sockopt_posix.go @@ -8,6 +8,7 @@ package net import ( "os" + "runtime" "syscall" ) @@ -137,5 +138,9 @@ func setLinger(fd *netFD, sec int) error { return err } defer fd.decref() - return os.NewSyscallError("setsockopt", syscall.SetsockoptLinger(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_LINGER, &l)) + opt := syscall.SO_LINGER + if runtime.GOOS == "darwin" { + opt = syscall.SO_LINGER_SEC + } + return os.NewSyscallError("setsockopt", syscall.SetsockoptLinger(fd.sysfd, syscall.SOL_SOCKET, opt, &l)) } |