summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikio Hara <mikioh.mikioh@gmail.com>2014-05-13 00:38:36 +0900
committerMikio Hara <mikioh.mikioh@gmail.com>2014-05-13 00:38:36 +0900
commitc8952f94ec83abe95b4a3bebc04e1881f21ce5c2 (patch)
tree1970c7d8aa4db15aabb6360f3c032764f5e5e952 /src
parent45935695f50c9f0ab930351d447e8e523e9df5e6 (diff)
downloadgo-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.go7
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))
}