diff options
author | Andy Pan <panjf2000@gmail.com> | 2024-02-21 02:30:42 +0800 |
---|---|---|
committer | Quim Muntal <quimmuntal@gmail.com> | 2024-03-07 16:02:18 +0000 |
commit | 1cce1a6a1110a53c1aa8fa0f40b69307ff641ca4 (patch) | |
tree | 332039757948e38e2718dba13e6bd40ecbd637b2 /src/syscall | |
parent | 997636760e2d981bb2f5ba486e0702e60a07ba16 (diff) | |
download | go-1cce1a6a1110a53c1aa8fa0f40b69307ff641ca4.tar.gz go-1cce1a6a1110a53c1aa8fa0f40b69307ff641ca4.zip |
net: support TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT on newer Windows
Follows up CL 542275
Fixes #65817
Change-Id: I0b77c23f15d595d58492dfa20839a08e8670448b
Reviewed-on: https://go-review.googlesource.com/c/go/+/565495
Reviewed-by: Quim Muntal <quimmuntal@gmail.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Diffstat (limited to 'src/syscall')
-rw-r--r-- | src/syscall/syscall_windows.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/syscall/syscall_windows.go b/src/syscall/syscall_windows.go index c51ce04b84..bfd0d50fa7 100644 --- a/src/syscall/syscall_windows.go +++ b/src/syscall/syscall_windows.go @@ -1163,7 +1163,12 @@ type IPv6Mreq struct { Interface uint32 } -func GetsockoptInt(fd Handle, level, opt int) (int, error) { return -1, EWINDOWS } +func GetsockoptInt(fd Handle, level, opt int) (int, error) { + optval := int32(0) + optlen := int32(unsafe.Sizeof(optval)) + err := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&optval)), &optlen) + return int(optval), err +} func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} |