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
Родитель c0245cc591
Коммит bd3a59ad41
1 изменённых файлов: 33 добавлений и 12 удалений

Просмотреть файл

@ -555,6 +555,38 @@ static CURLcode imap_perform_login(struct connectdata *conn)
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()
@ -653,18 +685,7 @@ static CURLcode imap_perform_authentication(struct connectdata *conn)
if(!result) {
if(mech && (imapc->preftype & IMAP_TYPE_SASL)) {
/* Perform SASL based authentication */
if(initresp) {
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);
}
result = imap_perform_authenticate(conn, mech, initresp, state1, state2);
Curl_safefree(initresp);
}