Fixed use of CURLUSESSL_TRY for POP3 and IMAP based connections.

Fixed a problem in POP3 and IMAP where a connection would fail when
CURLUSESSL_TRY was specified for a server that didn't support
SSL/TLS connections rather than continuing.
This commit is contained in:
Steve Holme 2012-01-03 23:17:08 +00:00 committed by Daniel Stenberg
parent 277022b2e4
commit db4f69ef06
2 changed files with 13 additions and 5 deletions

View File

@ -354,8 +354,12 @@ static CURLcode imap_state_starttls_resp(struct connectdata *conn,
(void)instate; /* no use for this yet */
if(imapcode != 'O') {
failf(data, "STARTTLS denied. %c", imapcode);
result = CURLE_USE_SSL_FAILED;
if(data->set.use_ssl != CURLUSESSL_TRY) {
failf(data, "STARTTLS denied. %c", imapcode);
result = CURLE_USE_SSL_FAILED;
}
else
result = imap_state_login(conn);
}
else {
if(data->state.used_interface == Curl_if_multi) {

View File

@ -298,9 +298,13 @@ static CURLcode pop3_state_starttls_resp(struct connectdata *conn,
(void)instate; /* no use for this yet */
if(pop3code != 'O') {
failf(data, "STARTTLS denied. %c", pop3code);
result = CURLE_USE_SSL_FAILED;
state(conn, POP3_STOP);
if(data->set.use_ssl != CURLUSESSL_TRY) {
failf(data, "STARTTLS denied. %c", pop3code);
result = CURLE_USE_SSL_FAILED;
state(conn, POP3_STOP);
}
else
result = pop3_state_user(conn);
}
else {
/* Curl_ssl_connect is BLOCKING */