diff --git a/route/router.go b/route/router.go index 795e06dc..cb0a60ea 100644 --- a/route/router.go +++ b/route/router.go @@ -31,6 +31,7 @@ import ( "github.com/sagernet/sing/common" "github.com/sagernet/sing/common/buf" "github.com/sagernet/sing/common/bufio" + "github.com/sagernet/sing/common/bufio/deadline" "github.com/sagernet/sing/common/control" E "github.com/sagernet/sing/common/exceptions" F "github.com/sagernet/sing/common/format" @@ -624,6 +625,10 @@ func (r *Router) RouteConnection(ctx context.Context, conn net.Conn, metadata ad r.logger.DebugContext(ctx, "found fakeip domain: ", domain) } + if deadline.NeedAdditionalReadDeadline(conn) { + conn = deadline.NewConn(conn) + } + if metadata.InboundOptions.SniffEnabled { buffer := buf.NewPacket() buffer.FullReset() @@ -729,6 +734,11 @@ func (r *Router) RoutePacketConnection(ctx context.Context, conn N.PacketConn, m r.logger.DebugContext(ctx, "found fakeip domain: ", domain) } + // Currently we don't have deadline usages for UDP connections + /*if deadline.NeedAdditionalReadDeadline(conn) { + conn = deadline.NewPacketConn(bufio.NewNetPacketConn(conn)) + }*/ + if metadata.InboundOptions.SniffEnabled { buffer := buf.NewPacket() buffer.FullReset()