if (ret)
return getnameinfo_err (ret);
- if (outlen < safe_strlen (hbuf) + safe_strlen (pbuf) + 2)
+ if (outlen < mutt_strlen (hbuf) + mutt_strlen (pbuf) + 2)
return SASL_BUFOVER;
snprintf (out, outlen, "%s;%s", hbuf, pbuf);
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++;
if (mutt_get_field (prompt, resp, sizeof (resp), 0))
return SASL_FAIL;
- interaction->len = safe_strlen (resp) + 1;
+ interaction->len = mutt_strlen (resp) + 1;
interaction->result = safe_malloc (interaction->len);
memcpy (interaction->result, resp, interaction->len);
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);
+ *len = mutt_strlen (*result);
return SASL_OK;
}
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;
- len = safe_strlen (account->pass);
+ len = mutt_strlen (account->pass);
*psecret = (sasl_secret_t *) safe_malloc (sizeof (sasl_secret_t) + len);
(*psecret)->len = len;