summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2014-01-08 11:06:43 -0800
committerGuido van Rossum <guido@python.org>2014-01-08 11:06:43 -0800
commit7952bf589b9135875f8574136a3733dd9856131d (patch)
tree27ba62c88043fe6525620724c7c3dcbc1c53f03e /examples
parent23881a197b5dec1166a4f6c47d0983a257817c41 (diff)
downloadtrollius-7952bf589b9135875f8574136a3733dd9856131d.tar.gz
Fix bug in chunked reader (must read final CRLF).
Diffstat (limited to 'examples')
-rw-r--r--examples/fetch3.py14
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()