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.
5 // TCP socket options for windows
16 func setKeepAlivePeriod(fd
*netFD
, d time
.Duration
) error
{
17 if err
:= fd
.incref(); err
!= nil {
22 // Windows expects milliseconds so round to next highest millisecond.
23 d
+= (time
.Millisecond
- time
.Nanosecond
)
24 millis
:= uint32(d
/ time
.Millisecond
)
25 ka
:= syscall
.TCPKeepalive
{
31 size
:= uint32(unsafe
.Sizeof(ka
))
32 err
:= syscall
.WSAIoctl(fd
.sysfd
, syscall
.SIO_KEEPALIVE_VALS
, (*byte)(unsafe
.Pointer(&ka
)), size
, nil, 0, &ret
, nil, 0)
33 return os
.NewSyscallError("WSAIoctl", err
)