<<< Date Index >>>     <<< Thread Index >>>

[PATCH] SASL method fallbacks



The attached patch causes mutt to attempt the next method in
imap_authenticators if the previous method failed, even if the server
reported that the method was available. Previously mutt would give up
if any authentication method failed.
Index: auth_sasl.c
===================================================================
RCS file: /home/roessler/cvs/mutt/imap/auth_sasl.c,v
retrieving revision 3.4
diff -u -p -u -p -r3.4 auth_sasl.c
--- auth_sasl.c 12 Apr 2004 18:56:18 -0000      3.4
+++ auth_sasl.c 25 Jul 2004 19:00:13 -0000
@@ -122,6 +122,13 @@ imap_auth_res_t imap_auth_sasl (IMAP_DAT
       irc = imap_cmd_step (idata);
     while (irc == IMAP_CMD_CONTINUE);
 
+    if (method && irc == IMAP_CMD_NO)
+    {
+      dprint (2, (debugfile, "imap_auth_sasl: %s failed\n", method));
+      sasl_dispose (&saslconn);
+      return IMAP_AUTH_UNAVAIL;
+    }
+
     if (irc == IMAP_CMD_BAD || irc == IMAP_CMD_NO)
       goto bail;
 

Attachment: pgpc5GYvOUDaF.pgp
Description: PGP signature