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