From c2952093ea29f9761afa6ca3ad0ad2101b2083e8 Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Tue, 12 Dec 2017 20:05:01 +0100 Subject: [PATCH] fixed wrong message size --- main.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 1753b0a..d42c3b4 100644 --- a/main.go +++ b/main.go @@ -64,7 +64,7 @@ func (daemon *LedDaemon) receive() { break } if length > 0 { - msgLen := binary.BigEndian.Uint32(message[0:3]) + msgLen := binary.BigEndian.Uint32(message[0:4]) log.Debugf("[%s] Read %d bytes, first protobuf is %d long", daemon.name, length, msgLen) @@ -97,6 +97,12 @@ func (daemon *LedDaemon) send() { } } +func prepareProtobuf(data []byte) []byte { + size := make([]byte, 4) + binary.BigEndian.PutUint32(size, uint32(len(data))) + return append(size, data...) +} + func main() { killSignals := make(chan os.Signal, 1) signal.Notify(killSignals, syscall.SIGINT, syscall.SIGTERM) @@ -143,7 +149,7 @@ func main() { data, err := proto.Marshal(wrapperMsg) check(err) - ledDaemon.data <- data + ledDaemon.data <- prepareProtobuf(data) <-killSignals }