1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
13 func setKeepAlivePeriod(fd
*netFD
, d time
.Duration
) error
{
14 if err
:= fd
.incref(); err
!= nil {
18 // The kernel expects milliseconds so round to next highest
20 d
+= (time
.Millisecond
- time
.Nanosecond
)
21 msecs
:= int(d
/ time
.Millisecond
)
22 if err
:= syscall
.SetsockoptInt(fd
.sysfd
, syscall
.IPPROTO_TCP
, syscall
.TCP_KEEPINTVL
, msecs
); err
!= nil {
23 return os
.NewSyscallError("setsockopt", err
)
25 return os
.NewSyscallError("setsockopt", syscall
.SetsockoptInt(fd
.sysfd
, syscall
.IPPROTO_TCP
, syscall
.TCP_KEEPIDLE
, msecs
))