From 00d9cbf64f2daf1fa03d026a312cd4fdbb29548d Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 16 Sep 2025 09:32:21 -0500 Subject: [PATCH] setup rwhois (?) --- rwhois/main.go | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 rwhois/main.go diff --git a/rwhois/main.go b/rwhois/main.go new file mode 100644 index 0000000..e0ffbc8 --- /dev/null +++ b/rwhois/main.go @@ -0,0 +1,53 @@ +package main + +import ( + "bufio" + "fmt" + "log" + "net" + "strings" +) + +const RWhoisPort = "4321" + +func handleConnection(conn net.Conn) { + defer conn.Close() + + reader := bufio.NewReader(conn) + query, err := reader.ReadString('\n') + if err != nil { + log.Printf("Error reading query: %v", err) + return + } + query = strings.TrimSpace(query) + log.Printf("Received query: %s", query) + + // In a real RWhois server, you would parse the query, + // look up data, and potentially issue referrals. + // For this example, we'll send a simple response. + response := fmt.Sprintf("RWhois response for: %s\n", query) + _, err = conn.Write([]byte(response)) + if err != nil { + log.Printf("Error writing response: %v", err) + return + } +} + +func main() { + listener, err := net.Listen("tcp", ":"+RWhoisPort) + if err != nil { + log.Fatalf("Error listening: %v", err) + } + defer listener.Close() + + log.Printf("RWhois server listening on port %s", RWhoisPort) + + for { + conn, err := listener.Accept() + if err != nil { + log.Printf("Error accepting connection: %v", err) + continue + } + go handleConnection(conn) + } +}