From bf567dd9f127b3085f844eebfad7786145c48744 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Tue, 9 Jan 2024 03:24:57 -0500 Subject: [PATCH] lib: use multi instead of multi_easy for the active multi - Use data->multi and not data->multi_easy to refer to the active multi. The easy handle's active multi is always data->multi. This is a follow up to 757dfdf which changed curl so that an easy handle used with the easy interface and then multi interface cannot have two different multi handles associated with it at the same time (data->multi_easy from the easy interface and data->multi from the multi interface). Closes https://github.com/curl/curl/pull/12665 --- lib/easy.c | 2 +- lib/multi.c | 14 ++++---------- lib/multiif.h | 2 +- lib/vtls/openssl.c | 4 ++-- lib/vtls/schannel.c | 4 ++-- 5 files changed, 10 insertions(+), 16 deletions(-) diff --git a/lib/easy.c b/lib/easy.c index dc4870608d..30fd6ca89a 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -1305,7 +1305,7 @@ static int conn_upkeep(struct Curl_easy *data, conn->handler->connection_check(data, conn, CONNCHECK_KEEPALIVE); } else { - /* Do the generic action on the FIRSTSOCKE filter chain */ + /* Do the generic action on the FIRSTSOCKET filter chain */ Curl_conn_keep_alive(data, conn, FIRSTSOCKET); } Curl_detach_connection(data); diff --git a/lib/multi.c b/lib/multi.c index ed9cac7962..03002436c3 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -3706,19 +3706,13 @@ static void process_pending_handles(struct Curl_multi *multi) void Curl_set_in_callback(struct Curl_easy *data, bool value) { - /* might get called when there is no data pointer! */ - if(data) { - if(data->multi_easy) - data->multi_easy->in_callback = value; - else if(data->multi) - data->multi->in_callback = value; - } + if(data && data->multi) + data->multi->in_callback = value; } -bool Curl_is_in_callback(struct Curl_easy *easy) +bool Curl_is_in_callback(struct Curl_easy *data) { - return ((easy->multi && easy->multi->in_callback) || - (easy->multi_easy && easy->multi_easy->in_callback)); + return (data && data->multi && data->multi->in_callback); } unsigned int Curl_multi_max_concurrent_streams(struct Curl_multi *multi) diff --git a/lib/multiif.h b/lib/multiif.h index 37f7a44262..f36e14624a 100644 --- a/lib/multiif.h +++ b/lib/multiif.h @@ -38,7 +38,7 @@ void Curl_attach_connection(struct Curl_easy *data, void Curl_detach_connection(struct Curl_easy *data); bool Curl_multiplex_wanted(const struct Curl_multi *multi); void Curl_set_in_callback(struct Curl_easy *data, bool value); -bool Curl_is_in_callback(struct Curl_easy *easy); +bool Curl_is_in_callback(struct Curl_easy *data); CURLcode Curl_preconnect(struct Curl_easy *data); void Curl_multi_connchanged(struct Curl_multi *multi); diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c index 6157f2eb08..84b95ae8ad 100644 --- a/lib/vtls/openssl.c +++ b/lib/vtls/openssl.c @@ -3390,7 +3390,7 @@ static bool cached_x509_store_different( static X509_STORE *get_cached_x509_store(struct Curl_cfilter *cf, const struct Curl_easy *data) { - struct Curl_multi *multi = data->multi_easy ? data->multi_easy : data->multi; + struct Curl_multi *multi = data->multi; X509_STORE *store = NULL; DEBUGASSERT(multi); @@ -3410,7 +3410,7 @@ static void set_cached_x509_store(struct Curl_cfilter *cf, X509_STORE *store) { struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf); - struct Curl_multi *multi = data->multi_easy ? data->multi_easy : data->multi; + struct Curl_multi *multi = data->multi; struct multi_ssl_backend_data *mbackend; DEBUGASSERT(multi); diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c index 18aaf63a59..76b855d928 100644 --- a/lib/vtls/schannel.c +++ b/lib/vtls/schannel.c @@ -2753,7 +2753,7 @@ HCERTSTORE Curl_schannel_get_cached_cert_store(struct Curl_cfilter *cf, const struct Curl_easy *data) { struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf); - struct Curl_multi *multi = data->multi_easy ? data->multi_easy : data->multi; + struct Curl_multi *multi = data->multi; const struct curl_blob *ca_info_blob = conn_config->ca_info_blob; struct schannel_multi_ssl_backend_data *mbackend; const struct ssl_general_config *cfg = &data->set.general_ssl; @@ -2822,7 +2822,7 @@ bool Curl_schannel_set_cached_cert_store(struct Curl_cfilter *cf, HCERTSTORE cert_store) { struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf); - struct Curl_multi *multi = data->multi_easy ? data->multi_easy : data->multi; + struct Curl_multi *multi = data->multi; const struct curl_blob *ca_info_blob = conn_config->ca_info_blob; struct schannel_multi_ssl_backend_data *mbackend; unsigned char *CAinfo_blob_digest = NULL;