diff options
Diffstat (limited to 'xP')
-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 } |