mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 08:08:50 -05:00
email: Post STARTLS capability code tidy up (Part Two)
Corrected the order of the pop3_state_capa() / imap_state_capability() and the pop3_state_capa_resp() / imap_state_capability_resp() functions to match the execution order.
This commit is contained in:
parent
5cd85db9fa
commit
de492b31c5
91
lib/imap.c
91
lib/imap.c
@ -460,19 +460,6 @@ static void state(struct connectdata *conn, imapstate newstate)
|
|||||||
imapc->state = newstate;
|
imapc->state = newstate;
|
||||||
}
|
}
|
||||||
|
|
||||||
static CURLcode imap_state_starttls(struct connectdata *conn)
|
|
||||||
{
|
|
||||||
CURLcode result = CURLE_OK;
|
|
||||||
|
|
||||||
/* Send the STARTTLS command */
|
|
||||||
result = imap_sendf(conn, "STARTTLS");
|
|
||||||
|
|
||||||
if(!result)
|
|
||||||
state(conn, IMAP_STARTTLS);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
static CURLcode imap_state_capability(struct connectdata *conn)
|
static CURLcode imap_state_capability(struct connectdata *conn)
|
||||||
{
|
{
|
||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
@ -493,6 +480,20 @@ static CURLcode imap_state_capability(struct connectdata *conn)
|
|||||||
return CURLE_OK;
|
return CURLE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static CURLcode imap_state_starttls(struct connectdata *conn)
|
||||||
|
{
|
||||||
|
CURLcode result = CURLE_OK;
|
||||||
|
|
||||||
|
/* Send the STARTTLS command */
|
||||||
|
result = imap_sendf(conn, "STARTTLS");
|
||||||
|
|
||||||
|
if(!result)
|
||||||
|
state(conn, IMAP_STARTTLS);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static CURLcode imap_state_login(struct connectdata *conn)
|
static CURLcode imap_state_login(struct connectdata *conn)
|
||||||
{
|
{
|
||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
@ -662,6 +663,38 @@ static CURLcode imap_state_servergreet_resp(struct connectdata *conn,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* For CAPABILITY responses */
|
||||||
|
static CURLcode imap_state_capability_resp(struct connectdata *conn,
|
||||||
|
int imapcode,
|
||||||
|
imapstate instate)
|
||||||
|
{
|
||||||
|
CURLcode result = CURLE_OK;
|
||||||
|
struct SessionHandle *data = conn->data;
|
||||||
|
struct imap_conn *imapc = &conn->proto.imapc;
|
||||||
|
|
||||||
|
(void)instate; /* no use for this yet */
|
||||||
|
|
||||||
|
if(imapcode != 'O')
|
||||||
|
result = imap_state_login(conn);
|
||||||
|
else if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
||||||
|
/* We don't have a SSL/TLS connection yet, but SSL is requested */
|
||||||
|
if(imapc->tls_supported)
|
||||||
|
/* Switch to TLS connection now */
|
||||||
|
result = imap_state_starttls(conn);
|
||||||
|
else if(data->set.use_ssl == CURLUSESSL_TRY)
|
||||||
|
/* Fallback and carry on with authentication */
|
||||||
|
result = imap_authenticate(conn);
|
||||||
|
else {
|
||||||
|
failf(data, "STARTTLS not supported.");
|
||||||
|
result = CURLE_USE_SSL_FAILED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
result = imap_authenticate(conn);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/* For STARTTLS responses */
|
/* For STARTTLS responses */
|
||||||
static CURLcode imap_state_starttls_resp(struct connectdata *conn,
|
static CURLcode imap_state_starttls_resp(struct connectdata *conn,
|
||||||
int imapcode,
|
int imapcode,
|
||||||
@ -706,38 +739,6 @@ static CURLcode imap_state_upgrade_tls(struct connectdata *conn)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For CAPABILITY responses */
|
|
||||||
static CURLcode imap_state_capability_resp(struct connectdata *conn,
|
|
||||||
int imapcode,
|
|
||||||
imapstate instate)
|
|
||||||
{
|
|
||||||
CURLcode result = CURLE_OK;
|
|
||||||
struct SessionHandle *data = conn->data;
|
|
||||||
struct imap_conn *imapc = &conn->proto.imapc;
|
|
||||||
|
|
||||||
(void)instate; /* no use for this yet */
|
|
||||||
|
|
||||||
if(imapcode != 'O')
|
|
||||||
result = imap_state_login(conn);
|
|
||||||
else if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
|
||||||
/* We don't have a SSL/TLS connection yet, but SSL is requested */
|
|
||||||
if(imapc->tls_supported)
|
|
||||||
/* Switch to TLS connection now */
|
|
||||||
result = imap_state_starttls(conn);
|
|
||||||
else if(data->set.use_ssl == CURLUSESSL_TRY)
|
|
||||||
/* Fallback and carry on with authentication */
|
|
||||||
result = imap_authenticate(conn);
|
|
||||||
else {
|
|
||||||
failf(data, "STARTTLS not supported.");
|
|
||||||
result = CURLE_USE_SSL_FAILED;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
result = imap_authenticate(conn);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For AUTHENTICATE PLAIN (without initial response) responses */
|
/* For AUTHENTICATE PLAIN (without initial response) responses */
|
||||||
static CURLcode imap_state_auth_plain_resp(struct connectdata *conn,
|
static CURLcode imap_state_auth_plain_resp(struct connectdata *conn,
|
||||||
int imapcode,
|
int imapcode,
|
||||||
|
89
lib/pop3.c
89
lib/pop3.c
@ -373,19 +373,6 @@ static void state(struct connectdata *conn, pop3state newstate)
|
|||||||
pop3c->state = newstate;
|
pop3c->state = newstate;
|
||||||
}
|
}
|
||||||
|
|
||||||
static CURLcode pop3_state_starttls(struct connectdata *conn)
|
|
||||||
{
|
|
||||||
CURLcode result = CURLE_OK;
|
|
||||||
|
|
||||||
/* Send the STLS command */
|
|
||||||
result = Curl_pp_sendf(&conn->proto.pop3c.pp, "STLS");
|
|
||||||
|
|
||||||
if(!result)
|
|
||||||
state(conn, POP3_STARTTLS);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
static CURLcode pop3_state_capa(struct connectdata *conn)
|
static CURLcode pop3_state_capa(struct connectdata *conn)
|
||||||
{
|
{
|
||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
@ -406,6 +393,20 @@ static CURLcode pop3_state_capa(struct connectdata *conn)
|
|||||||
return CURLE_OK;
|
return CURLE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static CURLcode pop3_state_starttls(struct connectdata *conn)
|
||||||
|
{
|
||||||
|
CURLcode result = CURLE_OK;
|
||||||
|
|
||||||
|
/* Send the STLS command */
|
||||||
|
result = Curl_pp_sendf(&conn->proto.pop3c.pp, "STLS");
|
||||||
|
|
||||||
|
if(!result)
|
||||||
|
state(conn, POP3_STARTTLS);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static CURLcode pop3_state_user(struct connectdata *conn)
|
static CURLcode pop3_state_user(struct connectdata *conn)
|
||||||
{
|
{
|
||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
@ -586,6 +587,37 @@ static CURLcode pop3_state_servergreet_resp(struct connectdata *conn,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* For CAPA responses */
|
||||||
|
static CURLcode pop3_state_capa_resp(struct connectdata *conn, int pop3code,
|
||||||
|
pop3state instate)
|
||||||
|
{
|
||||||
|
CURLcode result = CURLE_OK;
|
||||||
|
struct SessionHandle *data = conn->data;
|
||||||
|
struct pop3_conn *pop3c = &conn->proto.pop3c;
|
||||||
|
|
||||||
|
(void)instate; /* no use for this yet */
|
||||||
|
|
||||||
|
if(pop3code != '+')
|
||||||
|
result = pop3_state_user(conn);
|
||||||
|
else if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
||||||
|
/* We don't have a SSL/TLS connection yet, but SSL is requested */
|
||||||
|
if(pop3c->tls_supported)
|
||||||
|
/* Switch to TLS connection now */
|
||||||
|
result = pop3_state_starttls(conn);
|
||||||
|
else if(data->set.use_ssl == CURLUSESSL_TRY)
|
||||||
|
/* Fallback and carry on with authentication */
|
||||||
|
result = pop3_authenticate(conn);
|
||||||
|
else {
|
||||||
|
failf(data, "STLS not supported.");
|
||||||
|
result = CURLE_USE_SSL_FAILED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
result = pop3_authenticate(conn);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/* For STARTTLS responses */
|
/* For STARTTLS responses */
|
||||||
static CURLcode pop3_state_starttls_resp(struct connectdata *conn,
|
static CURLcode pop3_state_starttls_resp(struct connectdata *conn,
|
||||||
int pop3code,
|
int pop3code,
|
||||||
@ -630,37 +662,6 @@ static CURLcode pop3_state_upgrade_tls(struct connectdata *conn)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For CAPA responses */
|
|
||||||
static CURLcode pop3_state_capa_resp(struct connectdata *conn, int pop3code,
|
|
||||||
pop3state instate)
|
|
||||||
{
|
|
||||||
CURLcode result = CURLE_OK;
|
|
||||||
struct SessionHandle *data = conn->data;
|
|
||||||
struct pop3_conn *pop3c = &conn->proto.pop3c;
|
|
||||||
|
|
||||||
(void)instate; /* no use for this yet */
|
|
||||||
|
|
||||||
if(pop3code != '+')
|
|
||||||
result = pop3_state_user(conn);
|
|
||||||
else if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
|
||||||
/* We don't have a SSL/TLS connection yet, but SSL is requested */
|
|
||||||
if(pop3c->tls_supported)
|
|
||||||
/* Switch to TLS connection now */
|
|
||||||
result = pop3_state_starttls(conn);
|
|
||||||
else if(data->set.use_ssl == CURLUSESSL_TRY)
|
|
||||||
/* Fallback and carry on with authentication */
|
|
||||||
result = pop3_authenticate(conn);
|
|
||||||
else {
|
|
||||||
failf(data, "STLS not supported.");
|
|
||||||
result = CURLE_USE_SSL_FAILED;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
result = pop3_authenticate(conn);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For AUTH PLAIN responses */
|
/* For AUTH PLAIN responses */
|
||||||
static CURLcode pop3_state_auth_plain_resp(struct connectdata *conn,
|
static CURLcode pop3_state_auth_plain_resp(struct connectdata *conn,
|
||||||
int pop3code,
|
int pop3code,
|
||||||
|
Loading…
Reference in New Issue
Block a user