imap: Moved the sending of the AUTHENICATE command into a separate function
This commit is contained in:
Родитель
c0245cc591
Коммит
bd3a59ad41
45
lib/imap.c
45
lib/imap.c
|
@ -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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче