]> Cypherpunks repositories - gostls13.git/commitdiff
net: make use of SO_LINGER_SEC on darwin
authorMikio Hara <mikioh.mikioh@gmail.com>
Mon, 12 May 2014 15:38:36 +0000 (00:38 +0900)
committerMikio Hara <mikioh.mikioh@gmail.com>
Mon, 12 May 2014 15:38:36 +0000 (00:38 +0900)
Fixes #7971.

LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/92210044

src/pkg/net/sockopt_posix.go

index 921918c37f543b42dbb17569d82c3e2b2fcc45b5..0bfaecea41271d27a5832dd53aea6811145ad1f2 100644 (file)
@@ -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))
 }