aboutsummaryrefslogtreecommitdiff
path: root/src/syscall
diff options
context:
space:
mode:
authorAndy Pan <panjf2000@gmail.com>2024-02-21 02:30:42 +0800
committerQuim Muntal <quimmuntal@gmail.com>2024-03-07 16:02:18 +0000
commit1cce1a6a1110a53c1aa8fa0f40b69307ff641ca4 (patch)
tree332039757948e38e2718dba13e6bd40ecbd637b2 /src/syscall
parent997636760e2d981bb2f5ba486e0702e60a07ba16 (diff)
downloadgo-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.go7
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)}