diff options
author | Guido van Rossum <guido@python.org> | 2014-01-08 11:06:43 -0800 |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2014-01-08 11:06:43 -0800 |
commit | 7952bf589b9135875f8574136a3733dd9856131d (patch) | |
tree | 27ba62c88043fe6525620724c7c3dcbc1c53f03e /examples | |
parent | 23881a197b5dec1166a4f6c47d0983a257817c41 (diff) | |
download | trollius-7952bf589b9135875f8574136a3733dd9856131d.tar.gz |
Fix bug in chunked reader (must read final CRLF).
Diffstat (limited to 'examples')
-rw-r--r-- | examples/fetch3.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/examples/fetch3.py b/examples/fetch3.py index 780222b..bdca3ae 100644 --- a/examples/fetch3.py +++ b/examples/fetch3.py @@ -167,19 +167,19 @@ class Response: if nbytes is None: if self.get_header('transfer-encoding', '').lower() == 'chunked': blocks = [] - while True: + size = -1 + while size: size_header = yield from self.reader.readline() if not size_header: break parts = size_header.split(b';') size = int(parts[0], 16) - if not size: - break - block = yield from self.reader.readexactly(size) - assert len(block) == size, (len(block), size) - blocks.append(block) + if size: + block = yield from self.reader.readexactly(size) + assert len(block) == size, (len(block), size) + blocks.append(block) crlf = yield from self.reader.readline() - assert crlf == b'\r\n' + assert crlf == b'\r\n', repr(crlf) body = b''.join(blocks) else: body = yield from self.reader.read() |