From 1488d0a841443fe622e41148dad89298ece1603d Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 7 Jun 2023 09:51:35 +0300 Subject: move out message response handler --- internal/server/server.go | 5 ++++- internal/server/tcpserver.go | 16 ++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) (limited to 'internal') 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)) } } } -- cgit v1.2.3