From 007438e372c6296d09221054f74c76d3e64f3db5 Mon Sep 17 00:00:00 2001 From: bluepython508 <16466646+bluepython508@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:06:56 +0100 Subject: [PATCH] Loop on errors, rather than failing --- main.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 26195ce..e83f3d0 100644 --- a/main.go +++ b/main.go @@ -35,11 +35,12 @@ func Forward(server *tsnet.Server, proto, port, dst string, finish chan error) { if err != nil { finish <- err } - defer ln.Close() - err = netforward.Forward(Dialer { proto: proto, addr: dst }, ln) - if err != nil { - finish <- err + defer ln.Close(); + for true { + err = netforward.Forward(Dialer { proto: proto, addr: dst }, ln); + log.Print(err); } + finish <- err; } func main() { @@ -58,12 +59,11 @@ func main() { } defer s.Close() - err_chan := make(chan error) + finish := make(chan error) for _, arg := range os.Args[2:] { args := strings.SplitN(arg, ":", 3) proto, port, dst := args[0], args[1], args[2] - go Forward(s, proto, port, dst, err_chan); + go Forward(s, proto, port, dst, finish); } - err := <- err_chan - log.Fatal(err) + <- finish; }