Loading lib/imap.c +46 −45 Original line number Diff line number Diff line Loading @@ -460,19 +460,6 @@ static void state(struct connectdata *conn, imapstate 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) { CURLcode result = CURLE_OK; Loading @@ -493,6 +480,20 @@ static CURLcode imap_state_capability(struct connectdata *conn) 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) { CURLcode result = CURLE_OK; Loading Loading @@ -662,6 +663,38 @@ static CURLcode imap_state_servergreet_resp(struct connectdata *conn, 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 */ static CURLcode imap_state_starttls_resp(struct connectdata *conn, int imapcode, Loading Loading @@ -706,38 +739,6 @@ static CURLcode imap_state_upgrade_tls(struct connectdata *conn) 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 */ static CURLcode imap_state_auth_plain_resp(struct connectdata *conn, int imapcode, Loading lib/pop3.c +45 −44 Original line number Diff line number Diff line Loading @@ -373,19 +373,6 @@ static void state(struct connectdata *conn, pop3state 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) { CURLcode result = CURLE_OK; Loading @@ -406,6 +393,20 @@ static CURLcode pop3_state_capa(struct connectdata *conn) 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) { CURLcode result = CURLE_OK; Loading Loading @@ -586,6 +587,37 @@ static CURLcode pop3_state_servergreet_resp(struct connectdata *conn, 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 */ static CURLcode pop3_state_starttls_resp(struct connectdata *conn, int pop3code, Loading Loading @@ -630,37 +662,6 @@ static CURLcode pop3_state_upgrade_tls(struct connectdata *conn) 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 */ static CURLcode pop3_state_auth_plain_resp(struct connectdata *conn, int pop3code, Loading Loading
lib/imap.c +46 −45 Original line number Diff line number Diff line Loading @@ -460,19 +460,6 @@ static void state(struct connectdata *conn, imapstate 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) { CURLcode result = CURLE_OK; Loading @@ -493,6 +480,20 @@ static CURLcode imap_state_capability(struct connectdata *conn) 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) { CURLcode result = CURLE_OK; Loading Loading @@ -662,6 +663,38 @@ static CURLcode imap_state_servergreet_resp(struct connectdata *conn, 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 */ static CURLcode imap_state_starttls_resp(struct connectdata *conn, int imapcode, Loading Loading @@ -706,38 +739,6 @@ static CURLcode imap_state_upgrade_tls(struct connectdata *conn) 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 */ static CURLcode imap_state_auth_plain_resp(struct connectdata *conn, int imapcode, Loading
lib/pop3.c +45 −44 Original line number Diff line number Diff line Loading @@ -373,19 +373,6 @@ static void state(struct connectdata *conn, pop3state 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) { CURLcode result = CURLE_OK; Loading @@ -406,6 +393,20 @@ static CURLcode pop3_state_capa(struct connectdata *conn) 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) { CURLcode result = CURLE_OK; Loading Loading @@ -586,6 +587,37 @@ static CURLcode pop3_state_servergreet_resp(struct connectdata *conn, 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 */ static CURLcode pop3_state_starttls_resp(struct connectdata *conn, int pop3code, Loading Loading @@ -630,37 +662,6 @@ static CURLcode pop3_state_upgrade_tls(struct connectdata *conn) 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 */ static CURLcode pop3_state_auth_plain_resp(struct connectdata *conn, int pop3code, Loading