aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog4
-rw-r--r--camel/providers/imap/camel-imap-store.c8
2 files changed, 12 insertions, 0 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 8020ffea6e..612fe4300b 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,5 +1,9 @@
2001-03-13 Dan Winship <danw@ximian.com>
+ * providers/imap/camel-imap-store.c (imap_connect): When trying
+ again after a failed password attempt, check if the connection got
+ dropped (which Courier will do) and deal accordingly.
+
* providers/sendmail/camel-sendmail-transport.c (sendmail_send_to,
sendmail_send): More fixing for exim: It can't deal with "-tif",
you need to say "-t -i -f".
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index ec65d499b3..c13a584a33 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -464,6 +464,14 @@ imap_connect (CamelService *service, CamelException *ex)
}
}
+ if (!store->connected) {
+ /* Some servers (eg, courier) will disconnect on
+ * a bad password. So reconnect here.
+ */
+ if (!connect_to_server (service, ex))
+ return NULL;
+ }
+
if (authtype)
authenticated = try_auth (store, authtype->authproto, ex);
else {