| bpo-32947: test_ssl fixes for TLS 1.3 and OpenSSL 1.1.1 |
| |
| Backport partially commit 529525fb5a8fd9b96ab4021311a598c77588b918: |
| complete the previous partial backport (commit |
| 2a4ee8aa01d61b6a9c8e9c65c211e61bdb471826. |
| |
| Reported upstream: |
| |
| * https://bugs.python.org/issue32947#msg333990 |
| * https://github.com/python/cpython/pull/11612 |
| |
| diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py |
| index 7f8f636..05c09a6 100644 |
| |
| |
| @@ -2021,6 +2021,16 @@ if _have_threads: |
| sys.stdout.write(" server: read %r (%s), sending back %r (%s)...\n" |
| % (msg, ctype, msg.lower(), ctype)) |
| self.write(msg.lower()) |
| + except ConnectionResetError: |
| + # XXX: OpenSSL 1.1.1 sometimes raises ConnectionResetError |
| + # when connection is not shut down gracefully. |
| + if self.server.chatty and support.verbose: |
| + sys.stdout.write( |
| + " Connection reset by peer: {}\n".format( |
| + self.addr) |
| + ) |
| + self.close() |
| + self.running = False |
| except OSError: |
| if self.server.chatty: |
| handle_error("Test server failure:\n") |
| @@ -2100,6 +2110,11 @@ if _have_threads: |
| pass |
| except KeyboardInterrupt: |
| self.stop() |
| + except BaseException as e: |
| + if support.verbose and self.chatty: |
| + sys.stdout.write( |
| + ' connection handling failed: ' + repr(e) + '\n') |
| + |
| self.sock.close() |
| |
| def stop(self): |