]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
closes bpo-36755: Suppress noisy error output in test HTTPS server by default. (GH...
authorBenjamin Peterson <benjamin@python.org>
Fri, 17 May 2019 18:29:38 +0000 (11:29 -0700)
committerGitHub <noreply@github.com>
Fri, 17 May 2019 18:29:38 +0000 (11:29 -0700)
TLS 1.3 has a more efficient handshake protocol. The client can reject the server's credentials and close the connection before the server has even finished writing out all of its initial data. Depending on whether the server finishes writing the rest of its handshake before the it sees the connection is reset, the server will read an empty line or see a ECONNRESET OSError. Nothing is really wrong here with the server or client, so just suppress the error output in the OSError case to fix the test.

This fix isn't required in Python 3 because clients that reject the server's certificate will shut down the TLS layer before closing the TCP connection.

Lib/test/ssl_servers.py

index a312e28573ea1334a9e384956a688bce544e3543..a5023052d3b628d4e72bdc58bd20231bf3e92834 100644 (file)
@@ -42,6 +42,11 @@ class HTTPSServer(_HTTPServer):
             raise
         return sslconn, addr
 
+    def handle_error(self, request, client_address):
+        "Suppose noisy error output by default."
+        if support.verbose:
+            _HTTPServer.handle_error(self, request, client_address)
+
 class RootedHTTPRequestHandler(SimpleHTTPRequestHandler):
     # need to override translate_path to get a known root,
     # instead of using os.curdir, since the test could be