1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

imap: Moved the sending of the AUTHENICATE command into a separate function

This commit is contained in:
Steve Holme 2013-12-18 07:00:00 +00:00
parent c0245cc591
commit bd3a59ad41

View File

@ -555,6 +555,38 @@ static CURLcode imap_perform_login(struct connectdata *conn)
return result; return result;
} }
/***********************************************************************
*
* imap_perform_authenticate()
*
* Sends an AUTHENTICATE command allowing the client to login with the given
* SASL authentication mechanism.
*/
static CURLcode imap_perform_authenticate(struct connectdata *conn,
const char *mech,
const char *initresp,
imapstate state1, imapstate state2)
{
CURLcode result = CURLE_OK;
if(initresp) {
/* Send the AUTHENTICATE command with the initial response */
result = imap_sendf(conn, "AUTHENTICATE %s %s", mech, initresp);
if(!result)
state(conn, state2);
}
else {
/* Send the AUTHENTICATE command */
result = imap_sendf(conn, "AUTHENTICATE %s", mech);
if(!result)
state(conn, state1);
}
return result;
}
/*********************************************************************** /***********************************************************************
* *
* imap_perform_authentication() * imap_perform_authentication()
@ -653,18 +685,7 @@ static CURLcode imap_perform_authentication(struct connectdata *conn)
if(!result) { if(!result) {
if(mech && (imapc->preftype & IMAP_TYPE_SASL)) { if(mech && (imapc->preftype & IMAP_TYPE_SASL)) {
/* Perform SASL based authentication */ /* Perform SASL based authentication */
if(initresp) { result = imap_perform_authenticate(conn, mech, initresp, state1, state2);
result = imap_sendf(conn, "AUTHENTICATE %s %s", mech, initresp);
if(!result)
state(conn, state2);
}
else {
result = imap_sendf(conn, "AUTHENTICATE %s", mech);
if(!result)
state(conn, state1);
}
Curl_safefree(initresp); Curl_safefree(initresp);
} }