Loading lib/imap.c +9 −2 Original line number Diff line number Diff line Loading @@ -588,7 +588,14 @@ static CURLcode imap_multi_statemach(struct connectdata *conn, bool *done) { struct imap_conn *imapc = &conn->proto.imapc; CURLcode result = Curl_pp_multi_statemach(&imapc->pp); CURLcode result; if((conn->protocol & PROT_IMAPS) && !imapc->ssldone) { result = Curl_ssl_connect_nonblocking(conn, FIRSTSOCKET, &imapc->ssldone); } else { result = Curl_pp_multi_statemach(&imapc->pp); } *done = (bool)(imapc->state == IMAP_STOP); Loading Loading @@ -700,7 +707,7 @@ static CURLcode imap_connect(struct connectdata *conn, } #endif /* !CURL_DISABLE_HTTP && !CURL_DISABLE_PROXY */ if(conn->protocol & PROT_IMAPS) { if((conn->protocol & PROT_IMAPS) && data->state.used_interface != Curl_if_multi) { /* BLOCKING */ /* IMAPS is simply imap with SSL for the control channel */ /* now, perform the SSL initialization for this socket */ Loading lib/imap.h +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ struct imap_conn { imapstate state; /* always use imap.c:state() to change state! */ int cmdid; /* id number/index */ const char *idstr; /* pointer to a string for which to wait for as id */ bool ssldone; /* is connect() over SSL done? only relevant in multi mode */ }; extern const struct Curl_handler Curl_handler_imap; Loading Loading
lib/imap.c +9 −2 Original line number Diff line number Diff line Loading @@ -588,7 +588,14 @@ static CURLcode imap_multi_statemach(struct connectdata *conn, bool *done) { struct imap_conn *imapc = &conn->proto.imapc; CURLcode result = Curl_pp_multi_statemach(&imapc->pp); CURLcode result; if((conn->protocol & PROT_IMAPS) && !imapc->ssldone) { result = Curl_ssl_connect_nonblocking(conn, FIRSTSOCKET, &imapc->ssldone); } else { result = Curl_pp_multi_statemach(&imapc->pp); } *done = (bool)(imapc->state == IMAP_STOP); Loading Loading @@ -700,7 +707,7 @@ static CURLcode imap_connect(struct connectdata *conn, } #endif /* !CURL_DISABLE_HTTP && !CURL_DISABLE_PROXY */ if(conn->protocol & PROT_IMAPS) { if((conn->protocol & PROT_IMAPS) && data->state.used_interface != Curl_if_multi) { /* BLOCKING */ /* IMAPS is simply imap with SSL for the control channel */ /* now, perform the SSL initialization for this socket */ Loading
lib/imap.h +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ struct imap_conn { imapstate state; /* always use imap.c:state() to change state! */ int cmdid; /* id number/index */ const char *idstr; /* pointer to a string for which to wait for as id */ bool ssldone; /* is connect() over SSL done? only relevant in multi mode */ }; extern const struct Curl_handler Curl_handler_imap; Loading