From 044242360d093ec56cd08860f25da7e024e118b9 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sat, 18 Jan 2014 21:50:18 -0500 Subject: [PATCH] fix handling of 100-continue status code (closes #18574) --- Lib/http/server.py | 2 +- Lib/test/test_httpservers.py | 6 ++++-- Misc/NEWS | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Lib/http/server.py b/Lib/http/server.py index 2bfda12df43..7050b953522 100644 --- a/Lib/http/server.py +++ b/Lib/http/server.py @@ -355,7 +355,7 @@ def handle_expect_100(self): """ 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 9dd27788f75..dfccb6bd639 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -563,7 +563,8 @@ def test_with_continue_1_0(self): 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 @@ def _readAndReseek(f): 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 b831e491a22..0d2c13dc5d7 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.