aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xP/xP.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/xP/xP.go b/xP/xP.go
index 2d6e096..7e0285c 100644
--- a/xP/xP.go
+++ b/xP/xP.go
@@ -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
}