mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
https_getsock: provided for schannel backend as well
The function https_getsock was only implemented properly when USE_SSLEAY or USE_GNUTLS is defined, but it is also necessary for USE_SCHANNEL. The problem occurs when Curl_read_plain or Curl_write_plain returns CURLE_AGAIN. In that case CURL_OK is returned to the multi-interface an the used socket is set to state CURL_POLL_REMOVE and the easy-state is set to CURLM_STATE_PROTOCONNECT. This is fine, because later the socket should be set to CURL_POLL_IN or CURL_POLL_OUT via multi_getsock. That's where https_getsock is called and doesn't return any sockets.
This commit is contained in:
parent
329be28d69
commit
c42ca3e73a
@ -1371,9 +1371,9 @@ static CURLcode https_connecting(struct connectdata *conn, bool *done)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_SSLEAY) || defined(USE_GNUTLS)
|
||||
/* This function is for OpenSSL and GnuTLS only. It should be made to query
|
||||
the generic SSL layer instead. */
|
||||
#if defined(USE_SSLEAY) || defined(USE_GNUTLS) || defined(USE_SCHANNEL)
|
||||
/* This function is for OpenSSL, GnuTLS and schannel only. It should be
|
||||
made to query the generic SSL layer instead. */
|
||||
static int https_getsock(struct connectdata *conn,
|
||||
curl_socket_t *socks,
|
||||
int numsocks)
|
||||
@ -1409,7 +1409,7 @@ static int https_getsock(struct connectdata *conn,
|
||||
return GETSOCK_BLANK;
|
||||
}
|
||||
#endif /* USE_SSL */
|
||||
#endif /* USE_SSLEAY || USE_GNUTLS */
|
||||
#endif /* USE_SSLEAY || USE_GNUTLS || USE_SCHANNEL */
|
||||
|
||||
/*
|
||||
* Curl_http_done() gets called from Curl_done() after a single HTTP request
|
||||
|
Loading…
Reference in New Issue
Block a user