diff --git a/lib/imap.c b/lib/imap.c index 22a0c424605591ab080f5fcf18b8cfcf855e7045..6b6d4ce45683d1698adcb88f1815011b0a9bbbbb 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -579,9 +579,9 @@ static CURLcode imap_perform_authenticate(struct connectdata *conn) } else #endif - if((imapc->authmechs & SASL_MECH_XOAUTH2) && - (imapc->prefmech & SASL_MECH_XOAUTH2)) { + (imapc->prefmech & SASL_MECH_XOAUTH2) && + (imapc->prefmech != SASL_AUTH_ANY) || conn->xoauth2_bearer) { mech = "XOAUTH2"; state1 = IMAP_AUTHENTICATE_XOAUTH2; state2 = IMAP_AUTHENTICATE_FINAL; diff --git a/lib/smtp.c b/lib/smtp.c index f2c79794cce047e8f74613f373bdc39798420862..c3650e1d921b42b2d9c9e0f6e831597bd7f544d8 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -500,9 +500,9 @@ static CURLcode smtp_perform_authenticate(struct connectdata *conn) } else #endif - if((smtpc->authmechs & SASL_MECH_XOAUTH2) && - (smtpc->prefmech & SASL_MECH_XOAUTH2)) { + (smtpc->prefmech & SASL_MECH_XOAUTH2) && + (smtpc->prefmech != SASL_AUTH_ANY) || conn->xoauth2_bearer) { mech = "XOAUTH2"; state1 = SMTP_AUTH_XOAUTH2; state2 = SMTP_AUTH_FINAL;