Compare commits

..

No commits in common. "a3219e63c254f91bf92f4591b98ef796ce4913aa" and "2b7af34457b0e8baf7c62cd0d1546603cc62b198" have entirely different histories.

2 changed files with 84 additions and 1 deletions

View File

@ -13,7 +13,7 @@ Before any major/minor/patch bump all unit tests will be run to verify they pass
## [0.1.0] - 2024-01-27 ## [0.1.0] - 2024-01-27
- only forward packets if the header matches q3 rcon/query. - ignore any packets whose header does match a q3 rcon/query packet.
## [0.0.1] - 2024-01-27 ## [0.0.1] - 2024-01-27

View File

@ -0,0 +1,83 @@
package udpproxy
import (
"log"
"net"
"testing"
"time"
)
func TestSendAndReceive(t *testing.T) {
go runLilProxy()
go runUDPServer()
paddr, err := net.ResolveUDPAddr("udp", "localhost:9000")
if err != nil {
t.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, paddr)
if err != nil {
t.Fatal(err)
}
go func() {
for {
buf := make([]byte, 2048)
_, _, err = conn.ReadFromUDP(buf)
if err != nil {
log.Fatal(err)
}
log.Printf("response received: %s", string(buf))
}
}()
for {
time.Sleep(1 * time.Second)
_, err = conn.Write([]byte("hi\n"))
if err != nil {
log.Fatal(err)
}
}
}
func runLilProxy() {
port := ":9000"
target := "localhost:9001"
c, err := New(port, target)
if err != nil {
log.Fatal(err)
}
log.Fatal(c.ListenAndServe())
}
func runUDPServer() {
taddr, err := net.ResolveUDPAddr("udp", ":9001")
if err != nil {
log.Fatal(err)
}
conn, err := net.ListenUDP("udp", taddr)
if err != nil {
log.Fatal(err)
}
for {
buf := make([]byte, 2048)
_, caddr, err := conn.ReadFromUDP(buf)
if err != nil {
log.Fatal(err)
}
log.Printf("request received: %s", string(buf))
_, err = conn.WriteToUDP([]byte("bye\n"), caddr)
if err != nil {
log.Fatal(err)
}
}
}