Browse Source

Continue reading incoming data until enough rcvd

This fixes the case of a large packet being received, the current code stops processing as soon as >12 bytes are received,
tags/0.2
Sam Grimee 10 years ago
parent
commit
885609309c
1 changed files with 4 additions and 0 deletions
  1. +4
    -0
      worker/inpack.go

+ 4
- 0
worker/inpack.go View File

@@ -91,6 +91,10 @@ func decodeInPack(data []byte) (inpack *inPack, l int, err error) {
return
}
dl := int(binary.BigEndian.Uint32(data[8:12]))
if len(data) < (dl + minPacketLength) {
err = fmt.Errorf("Not enough data: %V", data)
return
}
dt := data[minPacketLength : dl+minPacketLength]
if len(dt) != int(dl) { // length not equal
err = fmt.Errorf("Invalid data: %V", data)


Loading…
Cancel
Save