diff options
author | Steve Holme <steve_holme@hotmail.com> | 2012-05-31 22:49:14 +0100 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2012-05-31 22:49:14 +0100 |
commit | f86432b119a73cef751c9d217b73bc63aed2b5d7 (patch) | |
tree | 58d1189341c8d50d8e1b1835fe8f73fa7c9e1dc1 /lib | |
parent | 2c6d32b864d5bdf7979c22b7b37818e54e6207d8 (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.c | 15 |
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) { |