|
|
@@ -5,7 +5,9 @@ import (
|
|
|
"net"
|
|
|
|
|
|
"github.com/sagernet/sing-box/adapter"
|
|
|
+ C "github.com/sagernet/sing-box/constant"
|
|
|
"github.com/sagernet/sing-box/log"
|
|
|
+ "github.com/sagernet/sing/common/control"
|
|
|
E "github.com/sagernet/sing/common/exceptions"
|
|
|
M "github.com/sagernet/sing/common/metadata"
|
|
|
N "github.com/sagernet/sing/common/network"
|
|
|
@@ -16,6 +18,9 @@ func (a *myInboundAdapter) ListenTCP() (net.Listener, error) {
|
|
|
bindAddr := M.SocksaddrFrom(a.listenOptions.Listen.Build(), a.listenOptions.ListenPort)
|
|
|
var tcpListener net.Listener
|
|
|
var listenConfig net.ListenConfig
|
|
|
+ // TODO: Add an option to customize the keep alive period
|
|
|
+ listenConfig.KeepAlive = C.TCPKeepAliveInitial
|
|
|
+ listenConfig.Control = control.Append(listenConfig.Control, control.SetKeepAlivePeriod(C.TCPKeepAliveInitial, C.TCPKeepAliveInterval))
|
|
|
if a.listenOptions.TCPMultiPath {
|
|
|
if !go121Available {
|
|
|
return nil, E.New("MultiPath TCP requires go1.21, please recompile your binary.")
|