diff --git a/tunnel/connection.go b/tunnel/connection.go index b3554a47..5d46eb58 100644 --- a/tunnel/connection.go +++ b/tunnel/connection.go @@ -104,8 +104,13 @@ func handleUDPToRemote(packet C.UDPPacket, pc C.PacketConn, metadata *C.Metadata return errors.New("udp addr invalid") } - _, err := pc.WriteTo(packet.Data(), addr) - return err + if _, err := pc.WriteTo(packet.Data(), addr); err != nil { + return err + } + // reset timeout + pc.SetReadDeadline(time.Now().Add(udpTimeout)) + + return nil } func handleUDPToLocal(packet C.UDPPacket, pc net.PacketConn, key string, fAddr net.Addr) {