From 7952bf589b9135875f8574136a3733dd9856131d Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 8 Jan 2014 11:06:43 -0800 Subject: Fix bug in chunked reader (must read final CRLF). --- examples/fetch3.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'examples') 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() -- cgit v1.2.1