2 Proxy is a Minetest RUDP proxy server
3 supporting multiple concurrent connections.
6 proxy dial:port listen:port
7 where dial:port is the server address
8 and listen:port is the address to listen on.
19 "github.com/Minetest-j45/mt/rudp"
23 if len(os.Args) != 3 {
24 fmt.Fprintln(os.Stderr, "usage: proxy dial:port listen:port")
28 pc, err := net.ListenPacket("udp", os.Args[2])
36 clt, err := l.Accept()
38 log.Print("accept: ", err)
42 log.Print(clt.ID(), ": connected")
44 conn, err := net.Dial("udp", os.Args[1])
49 srv := rudp.Connect(conn)
56 func proxy(src, dest *rudp.Conn) {
57 s := fmt.Sprint(src.ID(), " (", src.RemoteAddr(), "): ")
60 pkt, err := src.Recv()
62 if errors.Is(err, net.ErrClosed) {
63 if err := src.WhyClosed(); err != nil {
64 log.Print(s, "disconnected: ", err)
66 log.Print(s, "disconnected")