From bddc747c8b90aa14739a294eed3bddacfe34d260 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Thu, 11 Dec 2025 00:33:10 -0500 Subject: [PATCH] First little setup, there's a dentata server that receives block notices, and a landmine server/client that receives socket connects and reports them. --- .gitignore | 4 ++-- Makefile | 15 +++++++++++++ cmd/dentata/main.go | 40 +++++++++++++++++++++++++++++++++++ cmd/landmine/main.go | 50 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 Makefile create mode 100644 cmd/dentata/main.go create mode 100644 cmd/landmine/main.go diff --git a/.gitignore b/.gitignore index efb550a..4e6c6d8 100644 --- a/.gitignore +++ b/.gitignore @@ -30,5 +30,5 @@ public *.mp4 ffmpeg* renders -vidcrunch -vidcrunch.exe +dentata +landmine diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3eaac4d --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +build: + go build ./cmd/dentata + go build ./cmd/landmine + +clean: + rm dentata landmine + +run_server: + ./dentata + +run_mine: + ./landmine + +docs: + pkgsite -open diff --git a/cmd/dentata/main.go b/cmd/dentata/main.go new file mode 100644 index 0000000..4af4e46 --- /dev/null +++ b/cmd/dentata/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "fmt" + "net" + "log" + "bufio" +) + +func handleConnection(conn net.Conn) { + defer conn.Close() + + scan := bufio.NewScanner(conn) + + for scan.Scan() { + addr := scan.Text() + fmt.Println("BLOCK: ", addr) + } +} + + +func listener(addr string) { + server, err := net.Listen("tcp", addr) + + if err != nil { panic(err) } + + for { + conn, err := server.Accept() + + if err != nil { + log.Println("ACCEPT ERROR", err) + } else { + go handleConnection(conn) + } + } +} + +func main() { + listener("127.0.0.1:9001") +} diff --git a/cmd/landmine/main.go b/cmd/landmine/main.go new file mode 100644 index 0000000..c92506a --- /dev/null +++ b/cmd/landmine/main.go @@ -0,0 +1,50 @@ +package main + +import ( + "fmt" + "net" + "log" + "sync" +) + +func handleConnection(conn net.Conn) { + defer conn.Close() + addr := conn.RemoteAddr() + fmt.Println("Connect from", addr.Network(), addr.String()) + + // send explosion notice to dentata + report, err := net.Dial("tcp","127.0.0.1:9001") + if err != nil { panic(err) } + defer report.Close() + + report.Write([]byte(addr.String())) +} + + +func listener(addr string) { + server, err := net.Listen("tcp", addr) + + if err != nil { panic(err) } + + for { + conn, err := server.Accept() + + if err != nil { + log.Println("ACCEPT ERROR", err) + } else { + go handleConnection(conn) + } + } +} + +func main() { + var wg sync.WaitGroup + + for i := 0; i < 10; i++ { + wg.Go(func () { + listener(fmt.Sprintf("0.0.0.0:%d", 8000 + i)) + }) + } + + wg.Wait() +}