summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2023-06-07 09:51:35 +0300
committerPaul Buetow <paul@buetow.org>2023-06-07 09:51:35 +0300
commit1488d0a841443fe622e41148dad89298ece1603d (patch)
treee0ead5f30f08972c80099b202bd89f435e2a4ed5
parent548700540cb17755e14fae42413d28d462c01157 (diff)
move out message response handler
-rw-r--r--internal/server/server.go5
-rw-r--r--internal/server/tcpserver.go16
2 files changed, 10 insertions, 11 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index dc1fd90..7956703 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -44,5 +44,8 @@ func run(ctx context.Context, conf config.Config, quo quorum.Quorum) error {
}
}()
- return tcpServerRun(serverCtx, conf, ch)
+ return tcpServerRun(serverCtx, conf, func(message string) string {
+ ch <- vote.New(conf, message)
+ return "ok"
+ })
}
diff --git a/internal/server/tcpserver.go b/internal/server/tcpserver.go
index 983228b..3853cdc 100644
--- a/internal/server/tcpserver.go
+++ b/internal/server/tcpserver.go
@@ -8,12 +8,11 @@ import (
"net"
"codeberg.org/snonux/gorum/internal/config"
- "codeberg.org/snonux/gorum/internal/vote"
)
-func tcpServerRun(ctx context.Context, conf config.Config,
- ch chan<- vote.Vote) error {
+type handlerCb func(message string) string
+func tcpServerRun(ctx context.Context, conf config.Config, cb handlerCb) error {
listener, err := net.Listen("tcp", conf.Address)
if err != nil {
return fmt.Errorf("Error starting TCP server: %s", err.Error())
@@ -36,13 +35,11 @@ func tcpServerRun(ctx context.Context, conf config.Config,
}
log.Printf("Client connected: %s\n", conn.RemoteAddr().String())
- go handleConnection(ctx, conf, conn, ch)
+ go handleConnection(ctx, conn, cb)
}
}
-func handleConnection(ctx context.Context, conf config.Config,
- conn net.Conn, ch chan<- vote.Vote) {
-
+func handleConnection(ctx context.Context, conn net.Conn, cb handlerCb) {
defer conn.Close()
var (
@@ -63,9 +60,8 @@ func handleConnection(ctx context.Context, conf config.Config,
}
log.Printf("Received message from %s: %s", remoteAddr, message)
- ch <- vote.New(conf, message)
-
- conn.Write([]byte(message))
+ response := cb(message)
+ conn.Write([]byte(response))
}
}
}