From: R David Murray Date: Fri, 7 Feb 2014 18:51:22 +0000 (-0500) Subject: #20013: don't raise socket error when selected mailbox deleted. X-Git-Tag: v2.7.8~43 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ca00c6ea65c47e709c89dc16960b13e4b3e00c56;p=python #20013: don't raise socket error when selected mailbox deleted. I'm checking this in without a test because not much of this code is tested and I don't have time to work up the necessary extensions to the existing test framework. The patch itself was tested by the person who reported the bug. --- diff --git a/Lib/imaplib.py b/Lib/imaplib.py index 4586fb39e2..10ff340ef9 100644 --- a/Lib/imaplib.py +++ b/Lib/imaplib.py @@ -1002,6 +1002,11 @@ class IMAP4: del self.tagged_commands[tag] return result + # If we've seen a BYE at this point, the socket will be + # closed, so report the BYE now. + + self._check_bye() + # Some have reported "unexpected response" exceptions. # Note that ignoring them here causes loops. # Instead, send me details of the unexpected response and diff --git a/Misc/NEWS b/Misc/NEWS index 9520fa4963..9479ded78a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -42,6 +42,10 @@ Core and Builtins Library ------- +- Issue #20013: Some imap servers disconnect if the current mailbox is + deleted, and imaplib did not handle that case gracefully. Now it + handles the 'bye' correctly. + - Issue #20426: When passing the re.DEBUG flag, re.compile() displays the debug output every time it is called, regardless of the compilation cache.