1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-16 06:25:03 -05:00

create_conn: prefer multiplexing to using new connections

... as it would previously prefer new connections rather than
multiplexing in most conditions! The (now removed) code was a leftover
from the Pipelining code that was translated wrongly into a
multiplex-only world.

Reported-by: Kunal Ekawde
Bug: https://curl.haxx.se/mail/lib-2019-12/0060.html
Closes #4732
This commit is contained in:
Daniel Stenberg 2019-12-18 14:03:36 +01:00
parent fba8301338
commit 8c0807aa16
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -3594,24 +3594,6 @@ static CURLcode create_conn(struct Curl_easy *data,
else else
reuse = ConnectionExists(data, conn, &conn_temp, &force_reuse, &waitpipe); reuse = ConnectionExists(data, conn, &conn_temp, &force_reuse, &waitpipe);
/* If we found a reusable connection that is now marked as in use, we may
still want to open a new connection if we are multiplexing. */
if(reuse && !force_reuse && IsMultiplexingPossible(data, conn_temp)) {
size_t multiplexed = CONN_INUSE(conn_temp);
if(multiplexed > 0) {
infof(data, "Found connection %ld, with %zu requests on it\n",
conn_temp->connection_id, multiplexed);
if(Curl_conncache_bundle_size(conn_temp) < max_host_connections &&
Curl_conncache_size(data) < max_total_connections) {
/* We want a new connection anyway */
reuse = FALSE;
infof(data, "We can reuse, but we want a new connection anyway\n");
}
}
}
if(reuse) { if(reuse) {
/* /*
* We already have a connection for this, we got the former connection * We already have a connection for this, we got the former connection