jrouter/main.go

36 lines
679 B
Go
Raw Normal View History

2024-03-10 11:57:03 +11:00
package main
2024-03-15 15:17:21 +11:00
import (
"log"
"net"
"gitea.drjosh.dev/josh/jrouter/aurp"
)
2024-03-10 11:57:03 +11:00
func main() {
2024-03-15 15:17:21 +11:00
log.Println("jrouter")
ln, err := net.ListenUDP("udp4", &net.UDPAddr{Port: 387})
if err != nil {
log.Fatalf("Couldn't listen on udp4:387: %v", err)
}
// Incoming packet loop
pb := make([]byte, 65536)
for {
2024-03-15 16:15:24 +11:00
pktlen, _, readErr := ln.ReadFromUDP(pb)
// "Callers should always process
// the n > 0 bytes returned before considering the error err."
_, parseErr := aurp.ParsePacket(pb[:pktlen])
if parseErr != nil {
log.Printf("Failed to parse packet: %v", parseErr)
2024-03-15 15:17:21 +11:00
}
2024-03-15 16:15:24 +11:00
if readErr != nil {
log.Printf("Failed to read packet: %v", readErr)
continue
2024-03-15 15:17:21 +11:00
}
}
2024-03-10 11:57:03 +11:00
}