From 044242360d093ec56cd08860f25da7e024e118b9 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sat, 18 Jan 2014 21:50:18 -0500 Subject: 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 2bfda12..7050b95 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 9dd2778..dfccb6b 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 b831e49..0d2c13d 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. -- cgit v0.12