diff --git a/test/test_ssltransport.py b/test/test_ssltransport.py index 72b06b006..98682bd43 100644 --- a/test/test_ssltransport.py +++ b/test/test_ssltransport.py @@ -246,6 +246,7 @@ def proxy_handler(listener): ) self._read_write_loop(client_sock, upstream_sock) upstream_sock.close() + client_sock.close() self._start_server(proxy_handler) @@ -274,6 +275,10 @@ def _read_write_loop(self, client_sock, server_sock, chunks=65536): if write_socket in writable: try: b = read_socket.recv(chunks) + if len(b) == 0: + # One of the sockets has EOFed, we return to close + # both. + return write_socket.send(b) except ssl.SSLEOFError: # It's possible, depending on shutdown order, that we'll @@ -322,6 +327,7 @@ def socket_handler(listener): request = consume_socket(ssock) validate_request(request) ssock.send(sample_response()) + sock.close() cls._start_server(socket_handler)