diff options
| author | Paul Buetow <paul@buetow.org> | 2023-06-18 13:40:26 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2023-06-18 13:40:26 +0300 |
| commit | 93b3e63e89594b2b7a05b791a5cfc366f10c763b (patch) | |
| tree | ec2b53bb30393481ce5d6c969bca62e577199ce0 /internal/server/tcpserver.go | |
| parent | e3c903c49c798531124a1c59859f47d04d4534b9 (diff) | |
add universal tcp message reader and writer
Diffstat (limited to 'internal/server/tcpserver.go')
| -rw-r--r-- | internal/server/tcpserver.go | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/internal/server/tcpserver.go b/internal/server/tcpserver.go index b6d2ede..21324c3 100644 --- a/internal/server/tcpserver.go +++ b/internal/server/tcpserver.go @@ -1,13 +1,13 @@ package server import ( - "bufio" "context" "fmt" "log" "net" "codeberg.org/snonux/gorum/internal/config" + "codeberg.org/snonux/gorum/internal/tcp" ) type handlerCb func(message string) string @@ -41,11 +41,7 @@ func tcpServerRun(ctx context.Context, conf config.Config, cb handlerCb) error { func handleConnection(ctx context.Context, conn net.Conn, cb handlerCb) { defer conn.Close() - - var ( - remoteAddr = conn.RemoteAddr().String() - reader = bufio.NewReader(conn) - ) + remoteAddr := conn.RemoteAddr().String() for { select { @@ -53,15 +49,16 @@ func handleConnection(ctx context.Context, conn net.Conn, cb handlerCb) { log.Println("server: context done, disconnecting client:", remoteAddr) return default: - message, err := reader.ReadString('\n') + message, err := tcp.ReadStr(conn) if err != nil { - log.Println("server: client disconnected:", remoteAddr, err) + log.Println("server: unable to read message", remoteAddr, err) return } - log.Println("server: received message", remoteAddr, message) + log.Println("server: received message", message, "from", remoteAddr) response := cb(message) - if _, err := conn.Write([]byte(response)); err != nil { + + if err := tcp.WriteStr(conn, response); err != nil { log.Println("error:", err) } } |
