]> Cypherpunks repositories - gostls13.git/commitdiff
net: use internal/poll for DragonFly setKeepAlivePeriod
authorIan Lance Taylor <iant@golang.org>
Mon, 13 Feb 2017 19:08:21 +0000 (11:08 -0800)
committerIan Lance Taylor <iant@golang.org>
Mon, 13 Feb 2017 19:25:12 +0000 (19:25 +0000)
Fixes DragonFly build.

Change-Id: Id6b439cd4023ea8e3ed7cd9b70eec553c9eee4be
Reviewed-on: https://go-review.googlesource.com/36916
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/tcpsockopt_dragonfly.go

index 7cc716bad1042fdc17805cb95f4d245cdf266c37..2b018f2bb2b1154c38f391b64756d76e2c3f5ffc 100644 (file)
@@ -5,22 +5,20 @@
 package net
 
 import (
-       "os"
+       "runtime"
        "syscall"
        "time"
 )
 
 func setKeepAlivePeriod(fd *netFD, d time.Duration) error {
-       if err := fd.incref(); err != nil {
-               return err
-       }
-       defer fd.decref()
        // The kernel expects milliseconds so round to next highest
        // millisecond.
        d += (time.Millisecond - time.Nanosecond)
        msecs := int(d / time.Millisecond)
-       if err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.TCP_KEEPINTVL, msecs); err != nil {
-               return os.NewSyscallError("setsockopt", err)
+       if err := fd.pfd.SetsockoptInt(syscall.IPPROTO_TCP, syscall.TCP_KEEPINTVL, msecs); err != nil {
+               return wrapSyscallError("setsockopt", err)
        }
-       return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.TCP_KEEPIDLE, msecs))
+       err := fd.pfd.SetsockoptInt(syscall.IPPROTO_TCP, syscall.TCP_KEEPIDLE, msecs)
+       runtime.KeepAlive(fd)
+       return wrapSyscallError("setsockopt", err)
 }