From 0811beb03d11a1e85d1833995f21b07eed5511d0 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Thu, 3 Mar 2011 10:43:03 +0100 Subject: [PATCH] Provide better error message for invalid 'reference' setting When e.g. specifying an invalid 'reference' value for an IMAP server to a root folder that does not exist, we would previously have crashed with a nonsensical and non-intuitive error message (trying to address an element of a NoneType). This will also raise an Exception (which should be ok, given that this is really a misconfiguration on the user side), but it will explain to the user WHY it exited. Signed-off-by: Sebastian Spaeth Signed-off-by: Nicolas Sebrecht --- offlineimap/imapserver.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/offlineimap/imapserver.py b/offlineimap/imapserver.py index 2a9f247..0d7c621 100644 --- a/offlineimap/imapserver.py +++ b/offlineimap/imapserver.py @@ -302,6 +302,14 @@ class IMAPServer: # Some buggy IMAP servers do not respond well to LIST "" "" # Work around them. listres = imapobj.list(self.reference, '"*"')[1] + if listres == [None] or listres == None: + # No Folders were returned. This occurs, e.g. if the + # 'reference' prefix does not exist on the mail + # server. Raise exception. + err = "Server '%s' returned no folders in '%s'" % \ + (self.repos.getname(), self.reference) + self.ui.warn(err) + raise Exception(err) self.delim, self.root = \ imaputil.imapsplit(listres[0])[1:] self.delim = imaputil.dequote(self.delim)