aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2012-05-31 22:49:14 +0100
committerSteve Holme <steve_holme@hotmail.com>2012-05-31 22:49:14 +0100
commitf86432b119a73cef751c9d217b73bc63aed2b5d7 (patch)
tree58d1189341c8d50d8e1b1835fe8f73fa7c9e1dc1 /lib
parent2c6d32b864d5bdf7979c22b7b37818e54e6207d8 (diff)
smtp.c: Re-factored smtp_auth_login_user() for use with passwords
In preparation for moving to the SASL module re-factored the smtp_auth_login_user() function to smtp_auth_login() so that it can be used for both user names and passwords as sending both of these under the login authentication mechanism is the same.
Diffstat (limited to 'lib')
-rw-r--r--lib/smtp.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/smtp.c b/lib/smtp.c
index 36bda3196..d2b02bd62 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -383,22 +383,23 @@ static CURLcode smtp_state_helo(struct connectdata *conn)
return CURLE_OK;
}
-static CURLcode smtp_auth_login_user(struct connectdata *conn,
- char **outptr, size_t *outlen)
+static CURLcode smtp_auth_login(struct connectdata *conn, const char *valuep,
+ char **outptr, size_t *outlen)
{
- size_t ulen = strlen(conn->user);
+ size_t vlen = strlen(valuep);
- if(!ulen) {
+ if(!vlen) {
*outptr = strdup("=");
if(*outptr) {
*outlen = (size_t) 1;
return CURLE_OK;
}
+
*outlen = 0;
return CURLE_OUT_OF_MEMORY;
}
- return Curl_base64_encode(conn->data, conn->user, ulen, outptr, outlen);
+ return Curl_base64_encode(conn->data, valuep, vlen, outptr, outlen);
}
#ifdef USE_NTLM
@@ -458,7 +459,7 @@ static CURLcode smtp_authenticate(struct connectdata *conn)
state1 = SMTP_AUTHLOGIN;
state2 = SMTP_AUTHPASSWD;
smtpc->authused = SASL_AUTH_LOGIN;
- result = smtp_auth_login_user(conn, &initresp, &len);
+ result = smtp_auth_login(conn, conn->user, &initresp, &len);
}
else if(smtpc->authmechs & SASL_AUTH_PLAIN) {
mech = "PLAIN";
@@ -684,7 +685,7 @@ static CURLcode smtp_state_authlogin_resp(struct connectdata *conn,
result = CURLE_LOGIN_DENIED;
}
else {
- result = smtp_auth_login_user(conn, &authuser, &len);
+ result = smtp_auth_login(conn, conn->user, &authuser, &len);
if(!result) {
if(authuser) {