projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Nico Golde:
[apps/madmutt.git]
/
mutt_sasl.c
diff --git
a/mutt_sasl.c
b/mutt_sasl.c
index
ea34387
..
5c661c7
100644
(file)
--- a/
mutt_sasl.c
+++ b/
mutt_sasl.c
@@
-123,7
+123,7
@@
static int iptostring (const struct sockaddr *addr, socklen_t addrlen,
if (ret)
return getnameinfo_err (ret);
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);
return SASL_BUFOVER;
snprintf (out, outlen, "%s;%s", hbuf, pbuf);
@@
-327,12
+327,12
@@
sasl_callback_t *mutt_sasl_get_callbacks (ACCOUNT * account)
callback = mutt_sasl_callbacks;
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->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++;
callback->proc = mutt_sasl_cb_authname;
callback->context = account;
callback++;
@@
-367,7
+367,7
@@
int mutt_sasl_interact (sasl_interact_t * interaction)
if (mutt_get_field (prompt, resp, sizeof (resp), 0))
return SASL_FAIL;
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);
interaction->result = safe_malloc (interaction->len);
memcpy (interaction->result, resp, interaction->len);
@@
-443,8
+443,7
@@
static int mutt_sasl_cb_log (void *context, int priority, const char *message)
return SASL_OK;
}
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)
{
static int mutt_sasl_cb_authname (void *context, int id, const char **result,
unsigned *len)
{
@@
-461,13
+460,18
@@
static int mutt_sasl_cb_authname (void *context, int id, const char **result,
id == SASL_CB_AUTHNAME ? "authname" : "user",
account->host, account->port));
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)
if (len)
- *len =
safe
_strlen (*result);
+ *len =
mutt
_strlen (*result);
return SASL_OK;
}
return SASL_OK;
}
@@
-482,12
+486,12
@@
static int mutt_sasl_cb_pass (sasl_conn_t * conn, void *context, int id,
return SASL_BADPARAM;
debug_print (2, ("getting password for %s@%s:%u\n",
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;
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;
*psecret = (sasl_secret_t *) safe_malloc (sizeof (sasl_secret_t) + len);
(*psecret)->len = len;