vtls: replace "none"-functions with NULL pointers
For TLS backends that don't need these functions, they now use plain NULL pointers instead of setting a function that does nothing. Helps making it clearer that a specific TLS handler does not provide anything specific for that action. Closes #15772
This commit is contained in:
parent
9fce2c55d4
commit
2bf48b48b3
@ -991,7 +991,7 @@ static CURLcode setopt_long(struct Curl_easy *data, CURLoption option,
|
|||||||
/*
|
/*
|
||||||
* Enable TLS false start.
|
* Enable TLS false start.
|
||||||
*/
|
*/
|
||||||
if(!Curl_ssl_false_start(data))
|
if(!Curl_ssl_false_start())
|
||||||
return CURLE_NOT_BUILT_IN;
|
return CURLE_NOT_BUILT_IN;
|
||||||
|
|
||||||
data->set.ssl.falsestart = enabled;
|
data->set.ssl.falsestart = enabled;
|
||||||
|
|||||||
@ -1154,24 +1154,24 @@ const struct Curl_ssl Curl_ssl_bearssl = {
|
|||||||
|
|
||||||
sizeof(struct bearssl_ssl_backend_data),
|
sizeof(struct bearssl_ssl_backend_data),
|
||||||
|
|
||||||
Curl_none_init, /* init */
|
NULL, /* init */
|
||||||
Curl_none_cleanup, /* cleanup */
|
NULL, /* cleanup */
|
||||||
bearssl_version, /* version */
|
bearssl_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
bearssl_shutdown, /* shutdown */
|
bearssl_shutdown, /* shutdown */
|
||||||
bearssl_data_pending, /* data_pending */
|
bearssl_data_pending, /* data_pending */
|
||||||
bearssl_random, /* random */
|
bearssl_random, /* random */
|
||||||
Curl_none_cert_status_request, /* cert_status_request */
|
NULL, /* cert_status_request */
|
||||||
bearssl_connect, /* connect */
|
bearssl_connect, /* connect */
|
||||||
bearssl_connect_nonblocking, /* connect_nonblocking */
|
bearssl_connect_nonblocking, /* connect_nonblocking */
|
||||||
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
||||||
bearssl_get_internals, /* get_internals */
|
bearssl_get_internals, /* get_internals */
|
||||||
bearssl_close, /* close_one */
|
bearssl_close, /* close_one */
|
||||||
Curl_none_close_all, /* close_all */
|
NULL, /* close_all */
|
||||||
Curl_none_set_engine, /* set_engine */
|
NULL, /* set_engine */
|
||||||
Curl_none_set_engine_default, /* set_engine_default */
|
NULL, /* set_engine_default */
|
||||||
Curl_none_engines_list, /* engines_list */
|
NULL, /* engines_list */
|
||||||
Curl_none_false_start, /* false_start */
|
NULL, /* false_start */
|
||||||
bearssl_sha256sum, /* sha256sum */
|
bearssl_sha256sum, /* sha256sum */
|
||||||
NULL, /* associate_connection */
|
NULL, /* associate_connection */
|
||||||
NULL, /* disassociate_connection */
|
NULL, /* disassociate_connection */
|
||||||
|
|||||||
@ -2269,7 +2269,7 @@ const struct Curl_ssl Curl_ssl_gnutls = {
|
|||||||
gtls_init, /* init */
|
gtls_init, /* init */
|
||||||
gtls_cleanup, /* cleanup */
|
gtls_cleanup, /* cleanup */
|
||||||
gtls_version, /* version */
|
gtls_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
gtls_shutdown, /* shutdown */
|
gtls_shutdown, /* shutdown */
|
||||||
gtls_data_pending, /* data_pending */
|
gtls_data_pending, /* data_pending */
|
||||||
gtls_random, /* random */
|
gtls_random, /* random */
|
||||||
@ -2279,11 +2279,11 @@ const struct Curl_ssl Curl_ssl_gnutls = {
|
|||||||
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
||||||
gtls_get_internals, /* get_internals */
|
gtls_get_internals, /* get_internals */
|
||||||
gtls_close, /* close_one */
|
gtls_close, /* close_one */
|
||||||
Curl_none_close_all, /* close_all */
|
NULL, /* close_all */
|
||||||
Curl_none_set_engine, /* set_engine */
|
NULL, /* set_engine */
|
||||||
Curl_none_set_engine_default, /* set_engine_default */
|
NULL, /* set_engine_default */
|
||||||
Curl_none_engines_list, /* engines_list */
|
NULL, /* engines_list */
|
||||||
Curl_none_false_start, /* false_start */
|
NULL, /* false_start */
|
||||||
gtls_sha256sum, /* sha256sum */
|
gtls_sha256sum, /* sha256sum */
|
||||||
NULL, /* associate_connection */
|
NULL, /* associate_connection */
|
||||||
NULL, /* disassociate_connection */
|
NULL, /* disassociate_connection */
|
||||||
|
|||||||
@ -1200,11 +1200,6 @@ static ssize_t mbed_send(struct Curl_cfilter *cf, struct Curl_easy *data,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mbedtls_close_all(struct Curl_easy *data)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static CURLcode mbedtls_shutdown(struct Curl_cfilter *cf,
|
static CURLcode mbedtls_shutdown(struct Curl_cfilter *cf,
|
||||||
struct Curl_easy *data,
|
struct Curl_easy *data,
|
||||||
bool send_shutdown, bool *done)
|
bool send_shutdown, bool *done)
|
||||||
@ -1648,21 +1643,21 @@ const struct Curl_ssl Curl_ssl_mbedtls = {
|
|||||||
mbedtls_init, /* init */
|
mbedtls_init, /* init */
|
||||||
mbedtls_cleanup, /* cleanup */
|
mbedtls_cleanup, /* cleanup */
|
||||||
mbedtls_version, /* version */
|
mbedtls_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
mbedtls_shutdown, /* shutdown */
|
mbedtls_shutdown, /* shutdown */
|
||||||
mbedtls_data_pending, /* data_pending */
|
mbedtls_data_pending, /* data_pending */
|
||||||
mbedtls_random, /* random */
|
mbedtls_random, /* random */
|
||||||
Curl_none_cert_status_request, /* cert_status_request */
|
NULL, /* cert_status_request */
|
||||||
mbedtls_connect, /* connect */
|
mbedtls_connect, /* connect */
|
||||||
mbedtls_connect_nonblocking, /* connect_nonblocking */
|
mbedtls_connect_nonblocking, /* connect_nonblocking */
|
||||||
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
||||||
mbedtls_get_internals, /* get_internals */
|
mbedtls_get_internals, /* get_internals */
|
||||||
mbedtls_close, /* close_one */
|
mbedtls_close, /* close_one */
|
||||||
mbedtls_close_all, /* close_all */
|
NULL, /* close_all */
|
||||||
Curl_none_set_engine, /* set_engine */
|
NULL, /* set_engine */
|
||||||
Curl_none_set_engine_default, /* set_engine_default */
|
NULL, /* set_engine_default */
|
||||||
Curl_none_engines_list, /* engines_list */
|
NULL, /* engines_list */
|
||||||
Curl_none_false_start, /* false_start */
|
NULL, /* false_start */
|
||||||
mbedtls_sha256sum, /* sha256sum */
|
mbedtls_sha256sum, /* sha256sum */
|
||||||
NULL, /* associate_connection */
|
NULL, /* associate_connection */
|
||||||
NULL, /* disassociate_connection */
|
NULL, /* disassociate_connection */
|
||||||
|
|||||||
@ -5337,7 +5337,7 @@ const struct Curl_ssl Curl_ssl_openssl = {
|
|||||||
ossl_init, /* init */
|
ossl_init, /* init */
|
||||||
ossl_cleanup, /* cleanup */
|
ossl_cleanup, /* cleanup */
|
||||||
ossl_version, /* version */
|
ossl_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
ossl_shutdown, /* shutdown */
|
ossl_shutdown, /* shutdown */
|
||||||
ossl_data_pending, /* data_pending */
|
ossl_data_pending, /* data_pending */
|
||||||
ossl_random, /* random */
|
ossl_random, /* random */
|
||||||
@ -5351,7 +5351,7 @@ const struct Curl_ssl Curl_ssl_openssl = {
|
|||||||
ossl_set_engine, /* set_engine */
|
ossl_set_engine, /* set_engine */
|
||||||
ossl_set_engine_default, /* set_engine_default */
|
ossl_set_engine_default, /* set_engine_default */
|
||||||
ossl_engines_list, /* engines_list */
|
ossl_engines_list, /* engines_list */
|
||||||
Curl_none_false_start, /* false_start */
|
NULL, /* false_start */
|
||||||
#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && !defined(OPENSSL_NO_SHA256)
|
#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && !defined(OPENSSL_NO_SHA256)
|
||||||
ossl_sha256sum, /* sha256sum */
|
ossl_sha256sum, /* sha256sum */
|
||||||
#else
|
#else
|
||||||
|
|||||||
@ -1076,24 +1076,24 @@ const struct Curl_ssl Curl_ssl_rustls = {
|
|||||||
SSLSUPP_TLS13_CIPHERSUITES,
|
SSLSUPP_TLS13_CIPHERSUITES,
|
||||||
sizeof(struct rustls_ssl_backend_data),
|
sizeof(struct rustls_ssl_backend_data),
|
||||||
|
|
||||||
Curl_none_init, /* init */
|
NULL, /* init */
|
||||||
Curl_none_cleanup, /* cleanup */
|
NULL, /* cleanup */
|
||||||
cr_version, /* version */
|
cr_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
cr_shutdown, /* shutdown */
|
cr_shutdown, /* shutdown */
|
||||||
cr_data_pending, /* data_pending */
|
cr_data_pending, /* data_pending */
|
||||||
cr_random, /* random */
|
cr_random, /* random */
|
||||||
Curl_none_cert_status_request, /* cert_status_request */
|
NULL, /* cert_status_request */
|
||||||
cr_connect_blocking, /* connect */
|
cr_connect_blocking, /* connect */
|
||||||
cr_connect_nonblocking, /* connect_nonblocking */
|
cr_connect_nonblocking, /* connect_nonblocking */
|
||||||
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
||||||
cr_get_internals, /* get_internals */
|
cr_get_internals, /* get_internals */
|
||||||
cr_close, /* close_one */
|
cr_close, /* close_one */
|
||||||
Curl_none_close_all, /* close_all */
|
NULL, /* close_all */
|
||||||
Curl_none_set_engine, /* set_engine */
|
NULL, /* set_engine */
|
||||||
Curl_none_set_engine_default, /* set_engine_default */
|
NULL, /* set_engine_default */
|
||||||
Curl_none_engines_list, /* engines_list */
|
NULL, /* engines_list */
|
||||||
Curl_none_false_start, /* false_start */
|
NULL, /* false_start */
|
||||||
NULL, /* sha256sum */
|
NULL, /* sha256sum */
|
||||||
NULL, /* associate_connection */
|
NULL, /* associate_connection */
|
||||||
NULL, /* disassociate_connection */
|
NULL, /* disassociate_connection */
|
||||||
|
|||||||
@ -2798,21 +2798,21 @@ const struct Curl_ssl Curl_ssl_schannel = {
|
|||||||
schannel_init, /* init */
|
schannel_init, /* init */
|
||||||
schannel_cleanup, /* cleanup */
|
schannel_cleanup, /* cleanup */
|
||||||
schannel_version, /* version */
|
schannel_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
schannel_shutdown, /* shutdown */
|
schannel_shutdown, /* shutdown */
|
||||||
schannel_data_pending, /* data_pending */
|
schannel_data_pending, /* data_pending */
|
||||||
schannel_random, /* random */
|
schannel_random, /* random */
|
||||||
Curl_none_cert_status_request, /* cert_status_request */
|
NULL, /* cert_status_request */
|
||||||
schannel_connect, /* connect */
|
schannel_connect, /* connect */
|
||||||
schannel_connect_nonblocking, /* connect_nonblocking */
|
schannel_connect_nonblocking, /* connect_nonblocking */
|
||||||
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
||||||
schannel_get_internals, /* get_internals */
|
schannel_get_internals, /* get_internals */
|
||||||
schannel_close, /* close_one */
|
schannel_close, /* close_one */
|
||||||
Curl_none_close_all, /* close_all */
|
NULL, /* close_all */
|
||||||
Curl_none_set_engine, /* set_engine */
|
NULL, /* set_engine */
|
||||||
Curl_none_set_engine_default, /* set_engine_default */
|
NULL, /* set_engine_default */
|
||||||
Curl_none_engines_list, /* engines_list */
|
NULL, /* engines_list */
|
||||||
Curl_none_false_start, /* false_start */
|
NULL, /* false_start */
|
||||||
schannel_sha256sum, /* sha256sum */
|
schannel_sha256sum, /* sha256sum */
|
||||||
NULL, /* associate_connection */
|
NULL, /* associate_connection */
|
||||||
NULL, /* disassociate_connection */
|
NULL, /* disassociate_connection */
|
||||||
|
|||||||
@ -2749,23 +2749,23 @@ const struct Curl_ssl Curl_ssl_sectransp = {
|
|||||||
|
|
||||||
sizeof(struct st_ssl_backend_data),
|
sizeof(struct st_ssl_backend_data),
|
||||||
|
|
||||||
Curl_none_init, /* init */
|
NULL, /* init */
|
||||||
Curl_none_cleanup, /* cleanup */
|
NULL, /* cleanup */
|
||||||
sectransp_version, /* version */
|
sectransp_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
sectransp_shutdown, /* shutdown */
|
sectransp_shutdown, /* shutdown */
|
||||||
sectransp_data_pending, /* data_pending */
|
sectransp_data_pending, /* data_pending */
|
||||||
sectransp_random, /* random */
|
sectransp_random, /* random */
|
||||||
Curl_none_cert_status_request, /* cert_status_request */
|
NULL, /* cert_status_request */
|
||||||
sectransp_connect, /* connect */
|
sectransp_connect, /* connect */
|
||||||
sectransp_connect_nonblocking, /* connect_nonblocking */
|
sectransp_connect_nonblocking, /* connect_nonblocking */
|
||||||
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
||||||
sectransp_get_internals, /* get_internals */
|
sectransp_get_internals, /* get_internals */
|
||||||
sectransp_close, /* close_one */
|
sectransp_close, /* close_one */
|
||||||
Curl_none_close_all, /* close_all */
|
NULL, /* close_all */
|
||||||
Curl_none_set_engine, /* set_engine */
|
NULL, /* set_engine */
|
||||||
Curl_none_set_engine_default, /* set_engine_default */
|
NULL, /* set_engine_default */
|
||||||
Curl_none_engines_list, /* engines_list */
|
NULL, /* engines_list */
|
||||||
sectransp_false_start, /* false_start */
|
sectransp_false_start, /* false_start */
|
||||||
sectransp_sha256sum, /* sha256sum */
|
sectransp_sha256sum, /* sha256sum */
|
||||||
NULL, /* associate_connection */
|
NULL, /* associate_connection */
|
||||||
|
|||||||
150
lib/vtls/vtls.c
150
lib/vtls/vtls.c
@ -426,7 +426,9 @@ int Curl_ssl_init(void)
|
|||||||
return 1;
|
return 1;
|
||||||
init_ssl = TRUE; /* never again */
|
init_ssl = TRUE; /* never again */
|
||||||
|
|
||||||
return Curl_ssl->init();
|
if(Curl_ssl->init)
|
||||||
|
return Curl_ssl->init();
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool ssl_prefs_check(struct Curl_easy *data)
|
static bool ssl_prefs_check(struct Curl_easy *data)
|
||||||
@ -799,7 +801,8 @@ void Curl_ssl_close_all(struct Curl_easy *data)
|
|||||||
Curl_safefree(data->state.session);
|
Curl_safefree(data->state.session);
|
||||||
}
|
}
|
||||||
|
|
||||||
Curl_ssl->close_all(data);
|
if(Curl_ssl->close_all)
|
||||||
|
Curl_ssl->close_all(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Curl_ssl_adjust_pollset(struct Curl_cfilter *cf, struct Curl_easy *data,
|
void Curl_ssl_adjust_pollset(struct Curl_cfilter *cf, struct Curl_easy *data,
|
||||||
@ -828,20 +831,26 @@ void Curl_ssl_adjust_pollset(struct Curl_cfilter *cf, struct Curl_easy *data,
|
|||||||
*/
|
*/
|
||||||
CURLcode Curl_ssl_set_engine(struct Curl_easy *data, const char *engine)
|
CURLcode Curl_ssl_set_engine(struct Curl_easy *data, const char *engine)
|
||||||
{
|
{
|
||||||
return Curl_ssl->set_engine(data, engine);
|
if(Curl_ssl->set_engine)
|
||||||
|
return Curl_ssl->set_engine(data, engine);
|
||||||
|
return CURLE_NOT_BUILT_IN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Selects the default SSL crypto engine
|
/* Selects the default SSL crypto engine
|
||||||
*/
|
*/
|
||||||
CURLcode Curl_ssl_set_engine_default(struct Curl_easy *data)
|
CURLcode Curl_ssl_set_engine_default(struct Curl_easy *data)
|
||||||
{
|
{
|
||||||
return Curl_ssl->set_engine_default(data);
|
if(Curl_ssl->set_engine_default)
|
||||||
|
return Curl_ssl->set_engine_default(data);
|
||||||
|
return CURLE_NOT_BUILT_IN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return list of OpenSSL crypto engine names. */
|
/* Return list of OpenSSL crypto engine names. */
|
||||||
struct curl_slist *Curl_ssl_engines_list(struct Curl_easy *data)
|
struct curl_slist *Curl_ssl_engines_list(struct Curl_easy *data)
|
||||||
{
|
{
|
||||||
return Curl_ssl->engines_list(data);
|
if(Curl_ssl->engines_list)
|
||||||
|
return Curl_ssl->engines_list(data);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1185,96 +1194,18 @@ end:
|
|||||||
*/
|
*/
|
||||||
bool Curl_ssl_cert_status_request(void)
|
bool Curl_ssl_cert_status_request(void)
|
||||||
{
|
{
|
||||||
return Curl_ssl->cert_status_request();
|
if(Curl_ssl->cert_status_request)
|
||||||
|
return Curl_ssl->cert_status_request();
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check whether the SSL backend supports false start.
|
* Check whether the SSL backend supports false start.
|
||||||
*/
|
*/
|
||||||
bool Curl_ssl_false_start(struct Curl_easy *data)
|
bool Curl_ssl_false_start(void)
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
return Curl_ssl->false_start();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Default implementations for unsupported functions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
int Curl_none_init(void)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Curl_none_cleanup(void)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
CURLcode Curl_none_shutdown(struct Curl_cfilter *cf UNUSED_PARAM,
|
|
||||||
struct Curl_easy *data UNUSED_PARAM,
|
|
||||||
bool send_shutdown UNUSED_PARAM,
|
|
||||||
bool *done)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)cf;
|
|
||||||
(void)send_shutdown;
|
|
||||||
/* Every SSL backend should have a shutdown implementation. Until we
|
|
||||||
* have implemented that, we put this fake in place. */
|
|
||||||
*done = TRUE;
|
|
||||||
return CURLE_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
int Curl_none_check_cxn(struct Curl_cfilter *cf, struct Curl_easy *data)
|
|
||||||
{
|
|
||||||
(void)cf;
|
|
||||||
(void)data;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Curl_none_close_all(struct Curl_easy *data UNUSED_PARAM)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Curl_none_session_free(void *ptr UNUSED_PARAM)
|
|
||||||
{
|
|
||||||
(void)ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Curl_none_data_pending(struct Curl_cfilter *cf UNUSED_PARAM,
|
|
||||||
const struct Curl_easy *data UNUSED_PARAM)
|
|
||||||
{
|
|
||||||
(void)cf;
|
|
||||||
(void)data;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Curl_none_cert_status_request(void)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
CURLcode Curl_none_set_engine(struct Curl_easy *data UNUSED_PARAM,
|
|
||||||
const char *engine UNUSED_PARAM)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)engine;
|
|
||||||
return CURLE_NOT_BUILT_IN;
|
|
||||||
}
|
|
||||||
|
|
||||||
CURLcode Curl_none_set_engine_default(struct Curl_easy *data UNUSED_PARAM)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
return CURLE_NOT_BUILT_IN;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct curl_slist *Curl_none_engines_list(struct Curl_easy *data UNUSED_PARAM)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
return (struct curl_slist *)NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Curl_none_false_start(void)
|
|
||||||
{
|
{
|
||||||
|
if(Curl_ssl->false_start)
|
||||||
|
return Curl_ssl->false_start();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1351,23 +1282,23 @@ static const struct Curl_ssl Curl_ssl_multi = {
|
|||||||
(size_t)-1, /* something insanely large to be on the safe side */
|
(size_t)-1, /* something insanely large to be on the safe side */
|
||||||
|
|
||||||
multissl_init, /* init */
|
multissl_init, /* init */
|
||||||
Curl_none_cleanup, /* cleanup */
|
NULL, /* cleanup */
|
||||||
multissl_version, /* version */
|
multissl_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
Curl_none_shutdown, /* shutdown */
|
NULL, /* shutdown */
|
||||||
Curl_none_data_pending, /* data_pending */
|
NULL, /* data_pending */
|
||||||
NULL, /* random */
|
NULL, /* random */
|
||||||
Curl_none_cert_status_request, /* cert_status_request */
|
NULL, /* cert_status_request */
|
||||||
multissl_connect, /* connect */
|
multissl_connect, /* connect */
|
||||||
multissl_connect_nonblocking, /* connect_nonblocking */
|
multissl_connect_nonblocking, /* connect_nonblocking */
|
||||||
multissl_adjust_pollset, /* adjust_pollset */
|
multissl_adjust_pollset, /* adjust_pollset */
|
||||||
multissl_get_internals, /* get_internals */
|
multissl_get_internals, /* get_internals */
|
||||||
multissl_close, /* close_one */
|
multissl_close, /* close_one */
|
||||||
Curl_none_close_all, /* close_all */
|
NULL, /* close_all */
|
||||||
Curl_none_set_engine, /* set_engine */
|
NULL, /* set_engine */
|
||||||
Curl_none_set_engine_default, /* set_engine_default */
|
NULL, /* set_engine_default */
|
||||||
Curl_none_engines_list, /* engines_list */
|
NULL, /* engines_list */
|
||||||
Curl_none_false_start, /* false_start */
|
NULL, /* false_start */
|
||||||
NULL, /* sha256sum */
|
NULL, /* sha256sum */
|
||||||
NULL, /* associate_connection */
|
NULL, /* associate_connection */
|
||||||
NULL, /* disassociate_connection */
|
NULL, /* disassociate_connection */
|
||||||
@ -1432,7 +1363,8 @@ void Curl_ssl_cleanup(void)
|
|||||||
{
|
{
|
||||||
if(init_ssl) {
|
if(init_ssl) {
|
||||||
/* only cleanup if we did a previous init */
|
/* only cleanup if we did a previous init */
|
||||||
Curl_ssl->cleanup();
|
if(Curl_ssl->cleanup)
|
||||||
|
Curl_ssl->cleanup();
|
||||||
#if defined(CURL_WITH_MULTI_SSL)
|
#if defined(CURL_WITH_MULTI_SSL)
|
||||||
Curl_ssl = &Curl_ssl_multi;
|
Curl_ssl = &Curl_ssl_multi;
|
||||||
#endif
|
#endif
|
||||||
@ -1761,7 +1693,7 @@ static bool ssl_cf_data_pending(struct Curl_cfilter *cf,
|
|||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
CF_DATA_SAVE(save, cf, data);
|
CF_DATA_SAVE(save, cf, data);
|
||||||
if(Curl_ssl->data_pending(cf, data))
|
if(Curl_ssl->data_pending && Curl_ssl->data_pending(cf, data))
|
||||||
result = TRUE;
|
result = TRUE;
|
||||||
else
|
else
|
||||||
result = cf->next->cft->has_data_pending(cf->next, data);
|
result = cf->next->cft->has_data_pending(cf->next, data);
|
||||||
@ -1817,7 +1749,7 @@ static CURLcode ssl_cf_shutdown(struct Curl_cfilter *cf,
|
|||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
|
|
||||||
*done = TRUE;
|
*done = TRUE;
|
||||||
if(!cf->shutdown) {
|
if(!cf->shutdown && Curl_ssl->shut_down) {
|
||||||
struct cf_call_data save;
|
struct cf_call_data save;
|
||||||
|
|
||||||
CF_DATA_SAVE(save, cf, data);
|
CF_DATA_SAVE(save, cf, data);
|
||||||
@ -1893,8 +1825,7 @@ static CURLcode ssl_cf_query(struct Curl_cfilter *cf,
|
|||||||
static bool cf_ssl_is_alive(struct Curl_cfilter *cf, struct Curl_easy *data,
|
static bool cf_ssl_is_alive(struct Curl_cfilter *cf, struct Curl_easy *data,
|
||||||
bool *input_pending)
|
bool *input_pending)
|
||||||
{
|
{
|
||||||
struct cf_call_data save;
|
int result = -1;
|
||||||
int result;
|
|
||||||
/*
|
/*
|
||||||
* This function tries to determine connection status.
|
* This function tries to determine connection status.
|
||||||
*
|
*
|
||||||
@ -1903,9 +1834,12 @@ static bool cf_ssl_is_alive(struct Curl_cfilter *cf, struct Curl_easy *data,
|
|||||||
* 0 means the connection has been closed
|
* 0 means the connection has been closed
|
||||||
* -1 means the connection status is unknown
|
* -1 means the connection status is unknown
|
||||||
*/
|
*/
|
||||||
CF_DATA_SAVE(save, cf, data);
|
if(Curl_ssl->check_cxn) {
|
||||||
result = Curl_ssl->check_cxn(cf, data);
|
struct cf_call_data save;
|
||||||
CF_DATA_RESTORE(cf, save);
|
CF_DATA_SAVE(save, cf, data);
|
||||||
|
result = Curl_ssl->check_cxn(cf, data);
|
||||||
|
CF_DATA_RESTORE(cf, save);
|
||||||
|
}
|
||||||
if(result > 0) {
|
if(result > 0) {
|
||||||
*input_pending = TRUE;
|
*input_pending = TRUE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|||||||
@ -192,7 +192,7 @@ CURLcode Curl_pin_peer_pubkey(struct Curl_easy *data,
|
|||||||
|
|
||||||
bool Curl_ssl_cert_status_request(void);
|
bool Curl_ssl_cert_status_request(void);
|
||||||
|
|
||||||
bool Curl_ssl_false_start(struct Curl_easy *data);
|
bool Curl_ssl_false_start(void);
|
||||||
|
|
||||||
/* The maximum size of the SSL channel binding is 85 bytes, as defined in
|
/* The maximum size of the SSL channel binding is 85 bytes, as defined in
|
||||||
* RFC 5929, Section 4.1. The 'tls-server-end-point:' prefix is 21 bytes long,
|
* RFC 5929, Section 4.1. The 'tls-server-end-point:' prefix is 21 bytes long,
|
||||||
@ -278,7 +278,7 @@ extern struct Curl_cftype Curl_cft_ssl_proxy;
|
|||||||
#define Curl_ssl_kill_session(x) Curl_nop_stmt
|
#define Curl_ssl_kill_session(x) Curl_nop_stmt
|
||||||
#define Curl_ssl_random(x,y,z) ((void)x, CURLE_NOT_BUILT_IN)
|
#define Curl_ssl_random(x,y,z) ((void)x, CURLE_NOT_BUILT_IN)
|
||||||
#define Curl_ssl_cert_status_request() FALSE
|
#define Curl_ssl_cert_status_request() FALSE
|
||||||
#define Curl_ssl_false_start(a) FALSE
|
#define Curl_ssl_false_start() FALSE
|
||||||
#define Curl_ssl_get_internals(a,b,c,d) NULL
|
#define Curl_ssl_get_internals(a,b,c,d) NULL
|
||||||
#define Curl_ssl_supports(a,b) FALSE
|
#define Curl_ssl_supports(a,b) FALSE
|
||||||
#define Curl_ssl_cfilter_add(a,b,c) CURLE_NOT_BUILT_IN
|
#define Curl_ssl_cfilter_add(a,b,c) CURLE_NOT_BUILT_IN
|
||||||
|
|||||||
@ -190,23 +190,8 @@ struct Curl_ssl {
|
|||||||
|
|
||||||
extern const struct Curl_ssl *Curl_ssl;
|
extern const struct Curl_ssl *Curl_ssl;
|
||||||
|
|
||||||
|
|
||||||
int Curl_none_init(void);
|
|
||||||
void Curl_none_cleanup(void);
|
|
||||||
CURLcode Curl_none_shutdown(struct Curl_cfilter *cf, struct Curl_easy *data,
|
|
||||||
bool send_shutdown, bool *done);
|
|
||||||
int Curl_none_check_cxn(struct Curl_cfilter *cf, struct Curl_easy *data);
|
|
||||||
void Curl_none_close_all(struct Curl_easy *data);
|
|
||||||
void Curl_none_session_free(void *ptr);
|
|
||||||
bool Curl_none_data_pending(struct Curl_cfilter *cf,
|
|
||||||
const struct Curl_easy *data);
|
|
||||||
bool Curl_none_cert_status_request(void);
|
|
||||||
CURLcode Curl_none_set_engine(struct Curl_easy *data, const char *engine);
|
|
||||||
CURLcode Curl_none_set_engine_default(struct Curl_easy *data);
|
|
||||||
struct curl_slist *Curl_none_engines_list(struct Curl_easy *data);
|
|
||||||
bool Curl_none_false_start(void);
|
|
||||||
void Curl_ssl_adjust_pollset(struct Curl_cfilter *cf, struct Curl_easy *data,
|
void Curl_ssl_adjust_pollset(struct Curl_cfilter *cf, struct Curl_easy *data,
|
||||||
struct easy_pollset *ps);
|
struct easy_pollset *ps);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the SSL filter below the given one or NULL if there is none.
|
* Get the SSL filter below the given one or NULL if there is none.
|
||||||
|
|||||||
@ -2031,21 +2031,21 @@ const struct Curl_ssl Curl_ssl_wolfssl = {
|
|||||||
wolfssl_init, /* init */
|
wolfssl_init, /* init */
|
||||||
wolfssl_cleanup, /* cleanup */
|
wolfssl_cleanup, /* cleanup */
|
||||||
wolfssl_version, /* version */
|
wolfssl_version, /* version */
|
||||||
Curl_none_check_cxn, /* check_cxn */
|
NULL, /* check_cxn */
|
||||||
wolfssl_shutdown, /* shutdown */
|
wolfssl_shutdown, /* shutdown */
|
||||||
wolfssl_data_pending, /* data_pending */
|
wolfssl_data_pending, /* data_pending */
|
||||||
wolfssl_random, /* random */
|
wolfssl_random, /* random */
|
||||||
Curl_none_cert_status_request, /* cert_status_request */
|
NULL, /* cert_status_request */
|
||||||
wolfssl_connect, /* connect */
|
wolfssl_connect, /* connect */
|
||||||
wolfssl_connect_nonblocking, /* connect_nonblocking */
|
wolfssl_connect_nonblocking, /* connect_nonblocking */
|
||||||
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
Curl_ssl_adjust_pollset, /* adjust_pollset */
|
||||||
wolfssl_get_internals, /* get_internals */
|
wolfssl_get_internals, /* get_internals */
|
||||||
wolfssl_close, /* close_one */
|
wolfssl_close, /* close_one */
|
||||||
Curl_none_close_all, /* close_all */
|
NULL, /* close_all */
|
||||||
Curl_none_set_engine, /* set_engine */
|
NULL, /* set_engine */
|
||||||
Curl_none_set_engine_default, /* set_engine_default */
|
NULL, /* set_engine_default */
|
||||||
Curl_none_engines_list, /* engines_list */
|
NULL, /* engines_list */
|
||||||
Curl_none_false_start, /* false_start */
|
NULL, /* false_start */
|
||||||
wolfssl_sha256sum, /* sha256sum */
|
wolfssl_sha256sum, /* sha256sum */
|
||||||
NULL, /* associate_connection */
|
NULL, /* associate_connection */
|
||||||
NULL, /* disassociate_connection */
|
NULL, /* disassociate_connection */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user