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.
18 "github.com/anon55555/mt/rudp"
22 if len(os.Args) != 3 {
23 fmt.Fprintln(os.Stderr, "usage: proxy dial:port listen:port")
27 srvaddr, err := net.ResolveUDPAddr("udp", os.Args[1])
32 lc, err := net.ListenPacket("udp", os.Args[2])
40 clt, err := l.Accept()
46 log.Print(clt.Addr(), " connected")
48 conn, err := net.DialUDP("udp", nil, srvaddr)
53 srv := rudp.Connect(conn, conn.RemoteAddr())
60 func proxy(src, dest *rudp.Peer) {
62 pkt, err := src.Recv()
64 if err == rudp.ErrClosed {
65 msg := src.Addr().String() + " disconnected"
78 if _, err := dest.Send(pkt); err != nil {
83 dest.SendDisco(0, true)