From 831a4bb2d8defecb294275f11b21c7bd8d11d249 Mon Sep 17 00:00:00 2001 From: Lanius-collaris <55432068+Lanius-collaris@users.noreply.github.com> Date: Tue, 13 May 2025 07:26:01 +0800 Subject: [PATCH] intra/core: fix DisableKeepAlive --- intra/core/sockopt.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/intra/core/sockopt.go b/intra/core/sockopt.go index 119571dd..350bf570 100644 --- a/intra/core/sockopt.go +++ b/intra/core/sockopt.go @@ -66,8 +66,17 @@ func SetTimeoutSockOpt(c MinConn, timeoutms int) bool { } func DisableKeepAlive(c MinConn) bool { - if tc, ok := c.(*net.TCPConn); ok { - tc.SetKeepAlive(false) + if sc, ok := c.(syscall.Conn); ok { + raw, err := sc.SyscallConn() + if err != nil { + return false + } + err = raw.Control(func(fd uintptr) { + syscall.SetsockoptInt(int(fd), syscall.SOL_SOCKET, syscall.SO_KEEPALIVE, 0) + }) + if err != nil { + return false + } return true } return false