Revision
4122
Author
sagen@apple.com
Date
2009-04-30 17:27:48 -0700 (Thu, 30 Apr 2009)

Log Message

Try Twisted's imap login( ) if authenticate( ) fails

Modified Paths

Diff

Modified: CalendarServer/trunk/twistedcaldav/mail.py (4121 => 4122)


--- CalendarServer/trunk/twistedcaldav/mail.py	2009-04-30 23:09:50 UTC (rev 4121)
+++ CalendarServer/trunk/twistedcaldav/mail.py	2009-05-01 00:27:48 UTC (rev 4122)
@@ -1497,14 +1497,21 @@
 
     def serverGreeting(self, capabilities):
         self.log_debug("IMAP servergreeting")
-
         return self.authenticate(self.factory.settings["Password"]
             ).addCallback(self.cbLoggedIn
-            ).addErrback(self.ebLoginFailed)
+            ).addErrback(self.ebAuthenticateFailed)
 
     def ebLogError(self, error):
         self.log_error("IMAP Error: %s" % (error,))
 
+    def ebAuthenticateFailed(self, reason):
+        self.log_error("IMAP authenticate failed for %s, trying login" %
+            (self.factory.settings["Username"],))
+        return self.login(self.factory.settings["Username"],
+            self.factory.settings["Password"]
+            ).addCallback(self.cbLoggedIn
+            ).addErrback(self.ebLoginFailed)
+
     def ebLoginFailed(self, reason):
         self.log_error("IMAP login failed for %s" %
             (self.factory.settings["Username"],))