...
Source file src/net/tcpsockopt_dragonfly.go
1
2
3
4
5 package net
6
7 import (
8 "runtime"
9 "syscall"
10 "time"
11 )
12
13 func setKeepAlivePeriod(fd *netFD, d time.Duration) error {
14
15
16 d += (time.Millisecond - time.Nanosecond)
17 msecs := int(d / time.Millisecond)
18 if err := fd.pfd.SetsockoptInt(syscall.IPPROTO_TCP, syscall.TCP_KEEPINTVL, msecs); err != nil {
19 return wrapSyscallError("setsockopt", err)
20 }
21 err := fd.pfd.SetsockoptInt(syscall.IPPROTO_TCP, syscall.TCP_KEEPIDLE, msecs)
22 runtime.KeepAlive(fd)
23 return wrapSyscallError("setsockopt", err)
24 }
25
View as plain text