Issue #4631: Fix urlopen() result when an HTTP response uses chunked encoding.
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
index 63ce6d4..b86d8f2 100644
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -333,7 +333,6 @@
handlers = chain.get(kind, ())
for handler in handlers:
func = getattr(handler, meth_name)
-
result = func(*args)
if result is not None:
return result
@@ -1070,7 +1069,8 @@
except socket.error as err: # XXX what error?
raise URLError(err)
- resp = addinfourl(r.fp, r.msg, req.get_full_url())
+## resp = addinfourl(r.fp, r.msg, req.get_full_url())
+ resp = addinfourl(r, r.msg, req.get_full_url())
resp.code = r.status
resp.msg = r.reason
return resp
@@ -1606,7 +1606,7 @@
# According to RFC 2616, "2xx" code indicates that the client's
# request was successfully received, understood, and accepted.
if 200 <= response.status < 300:
- return addinfourl(response.fp, response.msg, "http:" + url,
+ return addinfourl(response, response.msg, "http:" + url,
response.status)
else:
return self.http_error(
diff --git a/Lib/urllib/response.py b/Lib/urllib/response.py
index 1352622..52eeed0 100644
--- a/Lib/urllib/response.py
+++ b/Lib/urllib/response.py
@@ -17,7 +17,8 @@
self.read = self.fp.read
self.readline = self.fp.readline
# TODO(jhylton): Make sure an object with readlines() is also iterable
- if hasattr(self.fp, "readlines"): self.readlines = self.fp.readlines
+ if hasattr(self.fp, "readlines"):
+ self.readlines = self.fp.readlines
if hasattr(self.fp, "fileno"):
self.fileno = self.fp.fileno
else: