case IMAP_AUTH_CRAM_MD5:
ok = imap_cmd_login(session, user, pass, "CRAM-MD5");
break;
+ case IMAP_AUTH_DIGEST_MD5:
+ ok = imap_cmd_login(session, user, pass, "DIGEST-MD5");
+ break;
case IMAP_AUTH_LOGIN:
ok = imap_cmd_login(session, user, pass, "LOGIN");
break;
debug_print("capabilities:\n"
"\t ANONYMOUS %d\n"
"\t CRAM-MD5 %d\n"
+ "\t DIGEST-MD5 %d\n"
"\t LOGIN %d\n"
"\t GSSAPI %d\n",
imap_has_capability(session, "ANONYMOUS"),
imap_has_capability(session, "CRAM-MD5"),
+ imap_has_capability(session, "DIGEST-MD5"),
imap_has_capability(session, "LOGIN"),
imap_has_capability(session, "GSSAPI"));
if (imap_has_capability(session, "CRAM-MD5"))
ok = imap_cmd_login(session, user, pass, "CRAM-MD5");
+ if ((ok == MAILIMAP_ERROR_BAD_STATE ||
+ ok == MAILIMAP_ERROR_LOGIN) && imap_has_capability(session, "DIGEST-MD5"))
+ ok = imap_cmd_login(session, user, pass, "DIGEST-MD5");
if ((ok == MAILIMAP_ERROR_BAD_STATE ||
ok == MAILIMAP_ERROR_LOGIN) && imap_has_capability(session, "GSSAPI"))
ok = imap_cmd_login(session, user, pass, "GSSAPI");
"CRAM-MD5 SASL plugin is installed.");
}
+ if (type == IMAP_AUTH_DIGEST_MD5) {
+ ext_info = _("\n\nDIGEST-MD5 logins only work if libetpan has been "
+ "compiled with SASL support and the "
+ "DIGEST-MD5 SASL plugin is installed.");
+ }
+
if (time(NULL) - last_login_err > 10) {
if (!prefs_common.no_recv_err_panel) {
alertpanel_error(_("Connection to %s failed: "
IMAP_AUTH_LOGIN = 1 << 0,
IMAP_AUTH_CRAM_MD5 = 1 << 1,
IMAP_AUTH_ANON = 1 << 2,
- IMAP_AUTH_GSSAPI = 1 << 3
+ IMAP_AUTH_GSSAPI = 1 << 3,
+ IMAP_AUTH_DIGEST_MD5 = 1 << 4
} IMAPAuthType;
FolderClass *imap_get_class (void);
COMBOBOX_ADD (menu, "CRAM-MD5", IMAP_AUTH_CRAM_MD5);
COMBOBOX_ADD (menu, "ANONYMOUS", IMAP_AUTH_ANON);
COMBOBOX_ADD (menu, "GSSAPI", IMAP_AUTH_GSSAPI);
+ COMBOBOX_ADD (menu, "DIGEST-MD5", IMAP_AUTH_DIGEST_MD5);
hbox1 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox1);