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/anon55555/mt/rudp"
23 if len(os.Args) != 3 {
24 fmt.Fprintln(os.Stderr, "usage: proxy dial:port listen:port")
28 srvaddr, err := net.ResolveUDPAddr("udp", os.Args[1])
33 lc, err := net.ListenPacket("udp", os.Args[2])
41 clt, err := l.Accept()
47 log.Print(clt.Addr(), " connected")
49 conn, err := net.DialUDP("udp", nil, srvaddr)
54 srv := rudp.Connect(conn, conn.RemoteAddr())
61 func proxy(src, dest *rudp.Peer) {
63 pkt, err := src.Recv()
65 if errors.Is(err, net.ErrClosed) {
66 msg := src.Addr().String() + " disconnected"
79 if _, err := dest.Send(pkt); err != nil {
84 dest.SendDisco(0, true)