diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2013-12-17 19:50:02 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2013-12-17 19:50:02 (GMT) |
commit | 1c84ac1f5528d26cb226210c2843b765efae83a4 (patch) | |
tree | 616a012d374352ea0f114d63fc565f69c8f8989d | |
parent | 48d761e2b4b8cef40349aa286f6f46fc6c6d0fa7 (diff) | |
download | cpython-1c84ac1f5528d26cb226210c2843b765efae83a4.zip cpython-1c84ac1f5528d26cb226210c2843b765efae83a4.tar.gz cpython-1c84ac1f5528d26cb226210c2843b765efae83a4.tar.bz2 |
Issue #20007: HTTPResponse.read(0) no more prematurely closes connection.
Original patch by Simon Sapin.
-rw-r--r-- | Lib/http/client.py | 2 | ||||
-rw-r--r-- | Lib/test/test_httplib.py | 3 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 8 insertions, 1 deletions
diff --git a/Lib/http/client.py b/Lib/http/client.py index cc452e2..e05c84d 100644 --- a/Lib/http/client.py +++ b/Lib/http/client.py @@ -544,7 +544,7 @@ class HTTPResponse(io.RawIOBase): # connection, and the user is reading more bytes than will be provided # (for example, reading in 1k chunks) n = self.fp.readinto(b) - if not n: + if not n and b: # Ideally, we would raise IncompleteRead if the content-length # wasn't satisfied, but it might break compatibility. self._close_conn() diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index f3c27c2..4410a93 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -162,6 +162,9 @@ class BasicTest(TestCase): sock = FakeSocket(body) resp = client.HTTPResponse(sock) resp.begin() + self.assertEqual(resp.read(0), b'') # Issue #20007 + self.assertFalse(resp.isclosed()) + self.assertFalse(resp.closed) self.assertEqual(resp.read(), b"Text") self.assertTrue(resp.isclosed()) self.assertFalse(resp.closed) @@ -1086,6 +1086,7 @@ Adrian Sampson James Sanders Ilya Sandler Rafael Santos +Simon Sapin Mark Sapiro Ty Sarna Hugh Sasse @@ -29,6 +29,9 @@ Core and Builtins Library ------- +- Issue #20007: HTTPResponse.read(0) no more prematurely closes connection. + Original patch by Simon Sapin. + - Issue #19912: Fixed numerous bugs in ntpath.splitunc(). - Issue #19911: ntpath.splitdrive() now correctly processes the 'İ' character |