From 025c87e54a51b9bf2a27e3bd0c02575f96366d06 Mon Sep 17 00:00:00 2001 From: Fangliding Date: Thu, 7 May 2026 15:25:29 +0800 Subject: [PATCH] up/down link only --- common/singbridge/packet.go | 4 ++++ common/singbridge/pipe.go | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/common/singbridge/packet.go b/common/singbridge/packet.go index f49fe3ca..42ef966e 100644 --- a/common/singbridge/packet.go +++ b/common/singbridge/packet.go @@ -60,6 +60,8 @@ func (w *PacketConnWrapper) ReadPacket(buffer *B.Buffer) (M.Socksaddr, error) { } mb, err := w.ReadMultiBuffer() if err != nil { + // uplinkonly + w.T.SetTimeout(3 * time.Second) return M.Socksaddr{}, err } nb, bb := buf.SplitFirst(mb) @@ -83,6 +85,8 @@ func (w *PacketConnWrapper) WritePacket(buffer *B.Buffer, destination M.Socksadd w.T.Update() endpoint, err := ToDestination(destination, net.Network_UDP) if err != nil { + // uplinkonly + w.T.SetTimeout(3 * time.Second) return err } vBuf := buf.New() diff --git a/common/singbridge/pipe.go b/common/singbridge/pipe.go index 0b0b9f77..5bb4b8d1 100644 --- a/common/singbridge/pipe.go +++ b/common/singbridge/pipe.go @@ -45,7 +45,12 @@ func (w *PipeConnWrapper) Close() error { func (w *PipeConnWrapper) Read(b []byte) (n int, err error) { w.T.Update() - return w.R.Read(b) + n, err = w.Read(b) + if err != nil { + // uplinkonly + w.T.SetTimeout(3 * time.Second) + } + return } func (w *PipeConnWrapper) Write(p []byte) (n int, err error) { @@ -68,6 +73,8 @@ func (w *PipeConnWrapper) Write(p []byte) (n int, err error) { if err != nil { n = 0 buf.ReleaseMulti(mb) + // downlinkonly + w.T.SetTimeout(3 * time.Second) } return }