From: Benjamin Peterson Date: Sun, 19 Jan 2014 02:50:18 +0000 (-0500) Subject: fix handling of 100-continue status code (closes #18574) X-Git-Tag: v3.3.4rc1~41 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=044242360d093ec56cd08860f25da7e024e118b9;p=python fix handling of 100-continue status code (closes #18574) --- diff --git a/Lib/http/server.py b/Lib/http/server.py index 2bfda12df4..7050b95352 100644 --- a/Lib/http/server.py +++ b/Lib/http/server.py @@ -355,7 +355,7 @@ class BaseHTTPRequestHandler(socketserver.StreamRequestHandler): """ self.send_response_only(100) - self.flush_headers() + self.end_headers() return True def handle_one_request(self): diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py index 9dd27788f7..dfccb6bd63 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -563,7 +563,8 @@ class BaseHTTPRequestHandlerTestCase(unittest.TestCase): def test_with_continue_1_1(self): result = self.send_typical_request(b'GET / HTTP/1.1\r\nExpect: 100-continue\r\n\r\n') self.assertEqual(result[0], b'HTTP/1.1 100 Continue\r\n') - self.assertEqual(result[1], b'HTTP/1.1 200 OK\r\n') + self.assertEqual(result[1], b'\r\n') + self.assertEqual(result[2], b'HTTP/1.1 200 OK\r\n') self.verify_expected_headers(result[2:-1]) self.verify_get_called() self.assertEqual(result[-1], b'Data\r\n') @@ -631,7 +632,8 @@ class BaseHTTPRequestHandlerTestCase(unittest.TestCase): self.assertNotEqual(_readAndReseek(output), b'') result = _readAndReseek(output).split(b'\r\n') self.assertEqual(result[0], b'HTTP/1.1 100 Continue') - self.assertEqual(result[1], b'HTTP/1.1 200 OK') + self.assertEqual(result[1], b'') + self.assertEqual(result[2], b'HTTP/1.1 200 OK') def test_with_continue_rejected(self): usual_handler = self.handler # Save to avoid breaking any subsequent tests. diff --git a/Misc/NEWS b/Misc/NEWS index b831e491a2..0d2c13dc5d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -43,6 +43,9 @@ Core and Builtins Library ------- +- Issue #18574: Fixed handling of 100-continue reply from server in + http.client.HTTPConnection. Patch by Nikolaus Rath. + - Issue #20270: urllib.urlparse now supports empty ports. - Issue #20243: TarFile no longer raise ReadError when opened in write mode.