diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2022-09-14 07:10:49 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2022-09-14 07:11:05 +0200 |
commit | 92f2f6895b41ecb60e3aaf59e3ea5bc20d9cd314 (patch) | |
tree | 3889ad63336c9e5a81e281ef0a43a251acd63642 | |
parent | c1d2e38840c0596efd10e97ff5a9edaa20d5457e (diff) | |
download | xK-92f2f6895b41ecb60e3aaf59e3ea5bc20d9cd314.tar.gz xK-92f2f6895b41ecb60e3aaf59e3ea5bc20d9cd314.tar.xz xK-92f2f6895b41ecb60e3aaf59e3ea5bc20d9cd314.zip |
xP: use buffered reads
-rw-r--r-- | xP/xP.go | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -4,6 +4,7 @@ package main import ( + "bufio" "context" "encoding/binary" "encoding/json" @@ -27,14 +28,14 @@ var ( // ----------------------------------------------------------------------------- -func relayReadJSON(conn net.Conn) []byte { +func relayReadJSON(r io.Reader) []byte { var length uint32 - if err := binary.Read(conn, binary.BigEndian, &length); err != nil { + if err := binary.Read(r, binary.BigEndian, &length); err != nil { log.Println("Event receive failed: " + err.Error()) return nil } b := make([]byte, length) - if _, err := io.ReadFull(conn, b); err != nil { + if _, err := io.ReadFull(r, b); err != nil { log.Println("Event receive failed: " + err.Error()) return nil } @@ -60,10 +61,11 @@ func relayReadJSON(conn net.Conn) []byte { func relayMakeReceiver(ctx context.Context, conn net.Conn) <-chan []byte { p := make(chan []byte, 1) + r := bufio.NewReader(conn) go func() { defer close(p) for { - j := relayReadJSON(conn) + j := relayReadJSON(r) if j == nil { return } |