From 51227eae4f71565cf7abae51a91a6c037f705076 Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Sun, 29 Nov 2015 10:05:58 +0800 Subject: Use simply counting instead of buffer.tell() -- socket.makefile does not support tell() --- kafka/protocol/message.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'kafka/protocol/message.py') 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 -- cgit v1.2.1