diff --git a/Lib/imaplib.py b/Lib/imaplib.py --- a/Lib/imaplib.py +++ b/Lib/imaplib.py @@ -180,6 +180,16 @@ # Get server welcome message, # request and store CAPABILITY response. + try: + self._init_interaction() + except self.error: + try: + self.shutdown() + except socket.error: + pass + raise + + def _init_interaction(self): if __debug__: self._cmd_log_len = 10 self._cmd_log_idx = 0 diff --git a/Lib/test/test_imaplib.py b/Lib/test/test_imaplib.py --- a/Lib/test/test_imaplib.py +++ b/Lib/test/test_imaplib.py @@ -135,6 +135,7 @@ def reap_server(self, server, thread): if verbose: print("waiting for server") server.shutdown() + server.server_close() thread.join() if verbose: print("done")