From cb3d0ce2cb5097d906c9e7b9d5bb1de2eb4bbb93 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Thu, 31 May 2012 22:58:07 +0100 Subject: [PATCH] smtp.c: Reworked message encoding in smtp_state_authpasswd_resp() Rather than encoding the password message itself the smtp_state_authpasswd_resp() function now delegates the work to the same function that smtp_state_authlogin_resp() and smtp_authenticate() use when constructing the encoded user name. --- lib/smtp.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/lib/smtp.c b/lib/smtp.c index d2b02bd62..f202fd6a7 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -708,7 +708,6 @@ static CURLcode smtp_state_authpasswd_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; - size_t plen; size_t len = 0; char *authpasswd = NULL; @@ -719,22 +718,16 @@ static CURLcode smtp_state_authpasswd_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { - plen = strlen(conn->passwd); + result = smtp_auth_login(conn, conn->passwd, &authpasswd, &len); - if(!plen) - result = Curl_pp_sendf(&conn->proto.smtpc.pp, "="); - else { - result = Curl_base64_encode(data, conn->passwd, plen, &authpasswd, &len); + if(!result) { + if(authpasswd) { + result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s", authpasswd); - if(!result) { - if(authpasswd) { - result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s", authpasswd); - - if(!result) - state(conn, SMTP_AUTH); - } - Curl_safefree(authpasswd); + if(!result) + state(conn, SMTP_AUTH); } + Curl_safefree(authpasswd); } }