summaryrefslogtreecommitdiff
path: root/rudp/proxy/proxy.go
diff options
context:
space:
mode:
Diffstat (limited to 'rudp/proxy/proxy.go')
-rw-r--r--rudp/proxy/proxy.go79
1 files changed, 0 insertions, 79 deletions
diff --git a/rudp/proxy/proxy.go b/rudp/proxy/proxy.go
deleted file mode 100644
index b8ca9f4..0000000
--- a/rudp/proxy/proxy.go
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-Proxy is a Minetest RUDP proxy server
-supporting multiple concurrent connections.
-
-Usage:
- proxy dial:port listen:port
-where dial:port is the server address
-and listen:port is the address to listen on.
-*/
-package main
-
-import (
- "errors"
- "fmt"
- "log"
- "net"
- "os"
-
- "github.com/anon55555/mt/rudp"
-)
-
-func main() {
- if len(os.Args) != 3 {
- fmt.Fprintln(os.Stderr, "usage: proxy dial:port listen:port")
- os.Exit(1)
- }
-
- pc, err := net.ListenPacket("udp", os.Args[2])
- if err != nil {
- log.Fatal(err)
- }
- defer pc.Close()
-
- l := rudp.Listen(pc)
- for {
- clt, err := l.Accept()
- if err != nil {
- log.Print("accept: ", err)
- continue
- }
-
- log.Print(clt.ID(), ": connected")
-
- conn, err := net.Dial("udp", os.Args[1])
- if err != nil {
- log.Print(err)
- continue
- }
- srv := rudp.Connect(conn)
-
- go proxy(clt, srv)
- go proxy(srv, clt)
- }
-}
-
-func proxy(src, dest *rudp.Conn) {
- s := fmt.Sprint(src.ID(), " (", src.RemoteAddr(), "): ")
-
- for {
- pkt, err := src.Recv()
- if err != nil {
- if errors.Is(err, net.ErrClosed) {
- if err := src.WhyClosed(); err != nil {
- log.Print(s, "disconnected: ", err)
- } else {
- log.Print(s, "disconnected")
- }
- break
- }
-
- log.Print(s, err)
- continue
- }
-
- dest.Send(pkt)
- }
-
- dest.Close()
-}