diff options
Diffstat (limited to 'cmd/daemon/main.go')
| -rw-r--r-- | cmd/daemon/main.go | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/cmd/daemon/main.go b/cmd/daemon/main.go new file mode 100644 index 0000000..ad503c5 --- /dev/null +++ b/cmd/daemon/main.go @@ -0,0 +1,53 @@ +package main + +import ( + "flag" + "log" + "net" + + "git.sr.ht/~rctt/solecd/core" +) + +var listenAddr string + +func main() { + flag.StringVar(&listenAddr, "a", "localhost:9999", "Listening address:port") + flag.Parse() + + log.Print("starting solec daemon mock") + log.Fatal(listen()) +} + +func listen() error { + ln, err := net.Listen("tcp", listenAddr) + if err != nil { + return err + } + + log.Print("server is listening on: ", listenAddr) + + for { + conn, err := ln.Accept() + if err != nil { + log.Print("cannot accept connection: ", err) + } + go handle(conn) + } +} + +func handle(conn net.Conn) { + log.Print("received connection from: ", conn.RemoteAddr()) + + hs := core.Handshake{Version: 0x0} + + if err := core.Send(conn, core.TypeHandshake, hs); err != nil { + log.Print("cannot send handshake ", err) + return + } + + test := core.Test{Message: "solec kujawski jest zajebisty"} + if err := core.Send(conn, core.TypeTest, test); err != nil { + log.Print("cannot send test message ", err) + return + } +} |
