From: Steve Holme Date: Tue, 3 Jan 2012 23:17:08 +0000 (+0000) Subject: Fixed use of CURLUSESSL_TRY for POP3 and IMAP based connections. X-Git-Tag: curl-7_24_0~57 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=db4f69ef0630001e6d566b949d86d1739bdd85b3;p=thirdparty%2Fcurl.git 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. --- diff --git a/lib/imap.c b/lib/imap.c index ba6c61078a..c39664d86d 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -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) { diff --git a/lib/pop3.c b/lib/pop3.c index 283025120c..b7781109b3 100644 --- a/lib/pop3.c +++ b/lib/pop3.c @@ -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 */