mirror of https://github.com/moparisthebest/curl
pop3: Moved the sending of the AUTH command into a separate function
This commit is contained in:
parent
bd3a59ad41
commit
367648d24a
47
lib/pop3.c
47
lib/pop3.c
|
@ -572,6 +572,39 @@ static CURLcode pop3_perform_apop(struct connectdata *conn)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
*
|
||||||
|
* pop3_perform_auth()
|
||||||
|
*
|
||||||
|
* Sends an AUTH command allowing the client to login with the given SASL
|
||||||
|
* authentication mechanism.
|
||||||
|
*/
|
||||||
|
static CURLcode pop3_perform_auth(struct connectdata *conn,
|
||||||
|
const char *mech,
|
||||||
|
const char *initresp, size_t len,
|
||||||
|
pop3state state1, pop3state state2)
|
||||||
|
{
|
||||||
|
CURLcode result = CURLE_OK;
|
||||||
|
struct pop3_conn *pop3c = &conn->proto.pop3c;
|
||||||
|
|
||||||
|
if(initresp && 8 + strlen(mech) + len <= 255) { /* AUTH <mech> ...<crlf> */
|
||||||
|
/* Send the AUTH command with the initial response */
|
||||||
|
result = Curl_pp_sendf(&pop3c->pp, "AUTH %s %s", mech, initresp);
|
||||||
|
|
||||||
|
if(!result)
|
||||||
|
state(conn, state2);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* Send the AUTH command */
|
||||||
|
result = Curl_pp_sendf(&pop3c->pp, "AUTH %s", mech);
|
||||||
|
|
||||||
|
if(!result)
|
||||||
|
state(conn, state1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
*
|
*
|
||||||
* pop3_perform_authentication()
|
* pop3_perform_authentication()
|
||||||
|
@ -673,19 +706,7 @@ static CURLcode pop3_perform_authentication(struct connectdata *conn)
|
||||||
if(!result) {
|
if(!result) {
|
||||||
if(mech && (pop3c->preftype & POP3_TYPE_SASL)) {
|
if(mech && (pop3c->preftype & POP3_TYPE_SASL)) {
|
||||||
/* Perform SASL based authentication */
|
/* Perform SASL based authentication */
|
||||||
if(initresp &&
|
result = pop3_perform_auth(conn, mech, initresp, len, state1, state2);
|
||||||
8 + strlen(mech) + len <= 255) { /* AUTH <mech> ...<crlf> */
|
|
||||||
result = Curl_pp_sendf(&pop3c->pp, "AUTH %s %s", mech, initresp);
|
|
||||||
|
|
||||||
if(!result)
|
|
||||||
state(conn, state2);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
result = Curl_pp_sendf(&pop3c->pp, "AUTH %s", mech);
|
|
||||||
|
|
||||||
if(!result)
|
|
||||||
state(conn, state1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Curl_safefree(initresp);
|
Curl_safefree(initresp);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue