summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2014-02-07 18:47:40 (GMT)
committerR David Murray <rdmurray@bitdance.com>2014-02-07 18:47:40 (GMT)
commitbd3a11ba34ff57e1a376d6a6eff2e636bdee2160 (patch)
tree030bc65f6effba4e74f8506eea8fbc23b7f103ca
parentfcc00723808f08c3c917ca73a1e14da43897a6bd (diff)
downloadcpython-bd3a11ba34ff57e1a376d6a6eff2e636bdee2160.zip
cpython-bd3a11ba34ff57e1a376d6a6eff2e636bdee2160.tar.gz
cpython-bd3a11ba34ff57e1a376d6a6eff2e636bdee2160.tar.bz2
#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.
-rw-r--r--Lib/imaplib.py5
-rw-r--r--Misc/NEWS4
2 files changed, 9 insertions, 0 deletions
diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index 3f6656a..ad5f4e9 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -1063,6 +1063,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 fb4a368..bf7781f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -45,6 +45,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 #19920: TarFile.list() no longer fails when outputs a listing
containing non-encodable characters. Based on patch by Vajrasky Kok.