Loop on errors, rather than failing

This commit is contained in:
bluepython508
2025-10-13 10:06:56 +01:00
parent 443123667f
commit 007438e372

16
main.go
View File

@@ -35,11 +35,12 @@ func Forward(server *tsnet.Server, proto, port, dst string, finish chan error) {
if err != nil { if err != nil {
finish <- err finish <- err
} }
defer ln.Close() defer ln.Close();
err = netforward.Forward(Dialer { proto: proto, addr: dst }, ln) for true {
if err != nil { err = netforward.Forward(Dialer { proto: proto, addr: dst }, ln);
finish <- err log.Print(err);
} }
finish <- err;
} }
func main() { func main() {
@@ -58,12 +59,11 @@ func main() {
} }
defer s.Close() defer s.Close()
err_chan := make(chan error) finish := make(chan error)
for _, arg := range os.Args[2:] { for _, arg := range os.Args[2:] {
args := strings.SplitN(arg, ":", 3) args := strings.SplitN(arg, ":", 3)
proto, port, dst := args[0], args[1], args[2] 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 <- finish;
log.Fatal(err)
} }