diff options
author | Dana Powers <dana.powers@rd.io> | 2015-11-29 10:05:58 +0800 |
---|---|---|
committer | Zack Dever <zack.dever@rd.io> | 2015-12-04 11:25:40 -0800 |
commit | 51227eae4f71565cf7abae51a91a6c037f705076 (patch) | |
tree | 17b65bebb158cb4767a1463adca27ea204601326 /kafka/protocol/message.py | |
parent | 058567912e8d82c1da5e5ead9e30be532573a173 (diff) | |
download | kafka-python-51227eae4f71565cf7abae51a91a6c037f705076.tar.gz |
Use simply counting instead of buffer.tell() -- socket.makefile does not support tell()
Diffstat (limited to 'kafka/protocol/message.py')
-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 |