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:
parent
c0245cc591
commit
bd3a59ad41
45
lib/imap.c
45
lib/imap.c
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user