callback = mutt_sasl_callbacks;
- callback->id = SASL_CB_AUTHNAME;
+ callback->id = SASL_CB_USER;
callback->proc = mutt_sasl_cb_authname;
callback->context = account;
callback++;
- callback->id = SASL_CB_USER;
+ callback->id = SASL_CB_AUTHNAME;
callback->proc = mutt_sasl_cb_authname;
callback->context = account;
callback++;
return SASL_OK;
}
-/* mutt_sasl_cb_authname: callback to retrieve authname or user (mutt
- * doesn't distinguish, even if some SASL plugins do) from ACCOUNT */
+/* mutt_sasl_cb_authname: callback to retrieve authname or user from ACCOUNT */
static int mutt_sasl_cb_authname (void *context, int id, const char **result,
unsigned *len)
{
id == SASL_CB_AUTHNAME ? "authname" : "user",
account->host, account->port));
- if (mutt_account_getuser (account))
- return SASL_FAIL;
-
- *result = account->user;
+ if (id == SASL_CB_AUTHNAME) {
+ if (mutt_account_getlogin (account))
+ return SASL_FAIL;
+ *result = account->login;
+ } else {
+ if (mutt_account_getuser (account))
+ return SASL_FAIL;
+ *result = account->user;
+ }
if (len)
*len = safe_strlen (*result);
return SASL_BADPARAM;
debug_print (2, ("getting password for %s@%s:%u\n",
- account->user, account->host, account->port));
+ account->login, account->host, account->port));
if (mutt_account_getpass (account))
return SASL_FAIL;