fixed wrong message size

This commit is contained in:
2017-12-12 20:05:01 +01:00
parent 23702d237d
commit c2952093ea

10
main.go
View File

@@ -64,7 +64,7 @@ func (daemon *LedDaemon) receive() {
break break
} }
if length > 0 { 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) 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() { func main() {
killSignals := make(chan os.Signal, 1) killSignals := make(chan os.Signal, 1)
signal.Notify(killSignals, syscall.SIGINT, syscall.SIGTERM) signal.Notify(killSignals, syscall.SIGINT, syscall.SIGTERM)
@@ -143,7 +149,7 @@ func main() {
data, err := proto.Marshal(wrapperMsg) data, err := proto.Marshal(wrapperMsg)
check(err) check(err)
ledDaemon.data <- data ledDaemon.data <- prepareProtobuf(data)
<-killSignals <-killSignals
} }