From d552de237f7c79ced658e458477569084cdc8c00 Mon Sep 17 00:00:00 2001 From: xjasonlyu Date: Sat, 5 Feb 2022 16:59:23 +0800 Subject: [PATCH] Fix: reset timeout in udp tunnel --- tunnel/udp.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tunnel/udp.go b/tunnel/udp.go index 3d44cf4..504abc3 100644 --- a/tunnel/udp.go +++ b/tunnel/udp.go @@ -68,6 +68,7 @@ func handleUDPToRemote(uc core.UDPConn, pc net.PacketConn, remote net.Addr) { if _, err := pc.WriteTo(buf[:n], remote); err != nil { log.Warnf("[UDP] write to %s error: %v", remote, err) } + pc.SetReadDeadline(time.Now().Add(_udpSessionTimeout)) /* reset timeout */ log.Infof("[UDP] %s --> %s", uc.RemoteAddr(), remote) } @@ -81,7 +82,7 @@ func handleUDPToLocal(uc core.UDPConn, pc net.PacketConn, remote net.Addr) { pc.SetReadDeadline(time.Now().Add(_udpSessionTimeout)) n, from, err := pc.ReadFrom(buf) if err != nil { - if !errors.Is(err, os.ErrDeadlineExceeded) /* ignore i/o timeout */ { + if !errors.Is(err, os.ErrDeadlineExceeded) /* ignore I/O timeout */ { log.Warnf("[UDP] read error: %v", err) } return @@ -96,5 +97,7 @@ func handleUDPToLocal(uc core.UDPConn, pc net.PacketConn, remote net.Addr) { log.Warnf("[UDP] write back from %s error: %v", from, err) return } + + log.Infof("[UDP] %s <-- %s", uc.RemoteAddr(), from) } }