email: Moved starttls code in separate functions
To help maintain the readability of the code in imap.c, pop3.c and smtp.c moved the starttls code into state_starttls() functions.
This commit is contained in:
19
lib/imap.c
19
lib/imap.c
@@ -459,6 +459,20 @@ 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;
|
||||||
|
const char *str = getcmdid(conn);
|
||||||
|
|
||||||
|
/* Send the STARTTLS command */
|
||||||
|
result = imap_sendf(conn, str, "%s STARTTLS", str);
|
||||||
|
|
||||||
|
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;
|
||||||
@@ -608,10 +622,7 @@ static CURLcode imap_state_servergreet_resp(struct connectdata *conn,
|
|||||||
if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
||||||
/* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
|
/* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
|
||||||
to TLS connection now */
|
to TLS connection now */
|
||||||
const char *str = getcmdid(conn);
|
result = imap_state_starttls(conn);
|
||||||
result = imap_sendf(conn, str, "%s STARTTLS", str);
|
|
||||||
if(!result)
|
|
||||||
state(conn, IMAP_STARTTLS);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
result = imap_state_capability(conn);
|
result = imap_state_capability(conn);
|
||||||
|
18
lib/pop3.c
18
lib/pop3.c
@@ -372,6 +372,19 @@ 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;
|
||||||
@@ -541,7 +554,6 @@ static CURLcode pop3_state_servergreet_resp(struct connectdata *conn,
|
|||||||
{
|
{
|
||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
struct SessionHandle *data = conn->data;
|
struct SessionHandle *data = conn->data;
|
||||||
struct pop3_conn *pop3c = &conn->proto.pop3c;
|
|
||||||
|
|
||||||
(void)instate; /* no use for this yet */
|
(void)instate; /* no use for this yet */
|
||||||
|
|
||||||
@@ -553,9 +565,7 @@ static CURLcode pop3_state_servergreet_resp(struct connectdata *conn,
|
|||||||
if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
||||||
/* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
|
/* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
|
||||||
to TLS connection now */
|
to TLS connection now */
|
||||||
result = Curl_pp_sendf(&pop3c->pp, "STLS");
|
result = pop3_state_starttls(conn);
|
||||||
if(!result)
|
|
||||||
state(conn, POP3_STARTTLS);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
result = pop3_state_capa(conn);
|
result = pop3_state_capa(conn);
|
||||||
|
17
lib/smtp.c
17
lib/smtp.c
@@ -355,6 +355,19 @@ static CURLcode smtp_state_helo(struct connectdata *conn)
|
|||||||
return CURLE_OK;
|
return CURLE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static CURLcode smtp_state_starttls(struct connectdata *conn)
|
||||||
|
{
|
||||||
|
CURLcode result = CURLE_OK;
|
||||||
|
|
||||||
|
/* Send the STARTTLS command */
|
||||||
|
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "STARTTLS");
|
||||||
|
|
||||||
|
if(!result)
|
||||||
|
state(conn, SMTP_STARTTLS);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
static CURLcode smtp_authenticate(struct connectdata *conn)
|
static CURLcode smtp_authenticate(struct connectdata *conn)
|
||||||
{
|
{
|
||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
@@ -545,9 +558,7 @@ static CURLcode smtp_state_ehlo_resp(struct connectdata *conn, int smtpcode,
|
|||||||
else if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
else if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
|
||||||
/* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
|
/* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
|
||||||
to TLS connection now */
|
to TLS connection now */
|
||||||
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "STARTTLS");
|
result = smtp_state_starttls(conn);
|
||||||
if(!result)
|
|
||||||
state(conn, SMTP_STARTTLS);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
result = smtp_authenticate(conn);
|
result = smtp_authenticate(conn);
|
||||||
|
Reference in New Issue
Block a user