From 8085c68b6de0eecbc06c22153f9e3c8eb1350b3e Mon Sep 17 00:00:00 2001 From: wwqgtxx Date: Fri, 11 Apr 2025 00:33:07 +0800 Subject: [PATCH] chore: decrease direct using *net.TCPConn --- component/keepalive/tcp_keepalive.go | 2 +- component/keepalive/tcp_keepalive_go122.go | 13 +++++++++++-- component/keepalive/tcp_keepalive_go123.go | 8 +++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/component/keepalive/tcp_keepalive.go b/component/keepalive/tcp_keepalive.go index 14ec862b..ddb853e9 100644 --- a/component/keepalive/tcp_keepalive.go +++ b/component/keepalive/tcp_keepalive.go @@ -59,7 +59,7 @@ func SetNetListenConfig(lc *net.ListenConfig) { } func TCPKeepAlive(c net.Conn) { - if tcp, ok := c.(*net.TCPConn); ok && tcp != nil { + if tcp, ok := c.(TCPConn); ok && tcp != nil { tcpKeepAlive(tcp) } } diff --git a/component/keepalive/tcp_keepalive_go122.go b/component/keepalive/tcp_keepalive_go122.go index 5d88827d..80a09ffa 100644 --- a/component/keepalive/tcp_keepalive_go122.go +++ b/component/keepalive/tcp_keepalive_go122.go @@ -2,9 +2,18 @@ package keepalive -import "net" +import ( + "net" + "time" +) -func tcpKeepAlive(tcp *net.TCPConn) { +type TCPConn interface { + net.Conn + SetKeepAlive(keepalive bool) error + SetKeepAlivePeriod(d time.Duration) error +} + +func tcpKeepAlive(tcp TCPConn) { if DisableKeepAlive() { _ = tcp.SetKeepAlive(false) } else { diff --git a/component/keepalive/tcp_keepalive_go123.go b/component/keepalive/tcp_keepalive_go123.go index 4c08118b..c8789576 100644 --- a/component/keepalive/tcp_keepalive_go123.go +++ b/component/keepalive/tcp_keepalive_go123.go @@ -4,6 +4,12 @@ package keepalive import "net" +type TCPConn interface { + net.Conn + SetKeepAlive(keepalive bool) error + SetKeepAliveConfig(config net.KeepAliveConfig) error +} + func keepAliveConfig() net.KeepAliveConfig { config := net.KeepAliveConfig{ Enable: true, @@ -18,7 +24,7 @@ func keepAliveConfig() net.KeepAliveConfig { return config } -func tcpKeepAlive(tcp *net.TCPConn) { +func tcpKeepAlive(tcp TCPConn) { if DisableKeepAlive() { _ = tcp.SetKeepAlive(false) } else {