claws-mail rebuild.

This commit is contained in:
4fury-c3440d8
2021-10-20 23:15:39 +03:00
parent aaea09c80f
commit 9519b6c013
4 changed files with 127 additions and 2 deletions
@@ -0,0 +1,46 @@
From 9c2585c58b49815a0eab8d683f0a94f75cbbe64e Mon Sep 17 00:00:00 2001
From: paul <paul@claws-mail.org>
Date: Mon, 12 Jul 2021 10:08:33 +0100
Subject: [PATCH] move OAuth2 to last place in auto auth selection
IMAP: when using 'automatic' auth type, if the server offers LOGIN, GSSAPI or plaintext in addition to OAUTH2, yet OAUTH2 is unconfigured, authentication will fail. This broke previously working config
---
src/imap.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/imap.c b/src/imap.c
index c486c471a..b72ceea76 100644
--- a/src/imap.c
+++ b/src/imap.c
@@ -951,14 +951,14 @@ static gint imap_auth(IMAPSession *session, const gchar *user, const gchar *pass
ok = imap_cmd_login(session, user, pass, "SCRAM-SHA-1");
if (ok == MAILIMAP_ERROR_LOGIN && imap_has_capability(session, "PLAIN"))
ok = imap_cmd_login(session, user, pass, "PLAIN");
- if (ok == MAILIMAP_ERROR_LOGIN && imap_has_capability(session, "XOAUTH2"))
- ok = imap_cmd_login(session, user, pass, "XOAUTH2");
if (ok == MAILIMAP_ERROR_LOGIN && imap_has_capability(session, "LOGIN"))
ok = imap_cmd_login(session, user, pass, "LOGIN");
if (ok == MAILIMAP_ERROR_LOGIN && imap_has_capability(session, "GSSAPI"))
ok = imap_cmd_login(session, user, pass, "GSSAPI");
if (ok == MAILIMAP_ERROR_LOGIN) /* we always try plaintext login before giving up */
ok = imap_cmd_login(session, user, pass, "plaintext");
+ if (ok == MAILIMAP_ERROR_LOGIN && imap_has_capability(session, "XOAUTH2"))
+ ok = imap_cmd_login(session, user, pass, "XOAUTH2");
}
if (ok == MAILIMAP_NO_ERROR)
@@ -994,6 +994,11 @@ static gint imap_auth(IMAPSession *session, const gchar *user, const gchar *pass
"LOGIN SASL plugin is installed.");
}
+ if (type == IMAP_AUTH_OAUTH2) {
+ ext_info = _("\n\nOAuth2 error. Check and correct your OAuth2 "
+ "account preferences.");
+ }
+
if (time(NULL) - last_login_err > 10) {
if (!prefs_common.no_recv_err_panel) {
alertpanel_error_log(_("Connection to %s failed: "
--
2.25.1