[PATCHv2] Provide better error message for invalid 'reference' setting

Sebastian Spaeth Sebastian at SSpaeth.de
Thu Mar 3 09:43:03 UTC 2011


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 <Sebastian at SSpaeth.de>
---
Please have this one go into master (which it is based on) or next. It gives a nicer error feedback on misconfigurations.
v2 with better commit message

 offlineimap/imapserver.py |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

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)
-- 
1.7.1




More information about the OfflineIMAP-project mailing list