diff options
-rw-r--r-- | kafka/protocol/message.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kafka/protocol/message.py b/kafka/protocol/message.py index 26f5ef6..4024a5c 100644 --- a/kafka/protocol/message.py +++ b/kafka/protocol/message.py @@ -60,8 +60,10 @@ class MessageSet(AbstractType): @classmethod def decode(cls, data): size = Int32.decode(data) - end = data.tell() + size + bytes_read = 0 items = [] - while data.tell() < end: + while bytes_read < size: items.append(cls.ITEM.decode(data)) + msg_size = items[-1][1] + bytes_read += (8 + 4 + msg_size) return items |