summaryrefslogtreecommitdiffstats
path: root/cmd/daemon/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/daemon/main.go')
-rw-r--r--cmd/daemon/main.go53
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
+ }
+}