mirror of
https://github.com/moparisthebest/curl
synced 2024-12-24 09:08:49 -05:00
url: default conn->port to the same as conn->remote_port
... so that it has a sensible value when ConnectionExists() is called which needs it set to differentiate host "bundles" correctly on port number! Also, make conncache:hashkey() use correct port for bundles that are proxy vs host connections. Probably a regression from 7.62.0 Reported-by: Tom van der Woerdt Fixes #3956 Closes #3957
This commit is contained in:
parent
2f11fbf208
commit
a6183ab23a
@ -163,9 +163,12 @@ static void hashkey(struct connectdata *conn, char *buf,
|
|||||||
const char **hostp)
|
const char **hostp)
|
||||||
{
|
{
|
||||||
const char *hostname;
|
const char *hostname;
|
||||||
|
long port = conn->remote_port;
|
||||||
|
|
||||||
if(conn->bits.httpproxy && !conn->bits.tunnel_proxy)
|
if(conn->bits.httpproxy && !conn->bits.tunnel_proxy) {
|
||||||
hostname = conn->http_proxy.host.name;
|
hostname = conn->http_proxy.host.name;
|
||||||
|
port = conn->port;
|
||||||
|
}
|
||||||
else if(conn->bits.conn_to_host)
|
else if(conn->bits.conn_to_host)
|
||||||
hostname = conn->conn_to_host.name;
|
hostname = conn->conn_to_host.name;
|
||||||
else
|
else
|
||||||
@ -178,7 +181,7 @@ static void hashkey(struct connectdata *conn, char *buf,
|
|||||||
DEBUGASSERT(len > 32);
|
DEBUGASSERT(len > 32);
|
||||||
|
|
||||||
/* put the number first so that the hostname gets cut off if too long */
|
/* put the number first so that the hostname gets cut off if too long */
|
||||||
msnprintf(buf, len, "%ld%s", conn->port, hostname);
|
msnprintf(buf, len, "%ld%s", port, hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Curl_conncache_unlock(struct Curl_easy *data)
|
void Curl_conncache_unlock(struct Curl_easy *data)
|
||||||
|
@ -2027,7 +2027,7 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
unsigned long port = strtoul(data->state.up.port, NULL, 10);
|
unsigned long port = strtoul(data->state.up.port, NULL, 10);
|
||||||
conn->remote_port = curlx_ultous(port);
|
conn->port = conn->remote_port = curlx_ultous(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
(void)curl_url_get(uh, CURLUPART_QUERY, &data->state.up.query, 0);
|
(void)curl_url_get(uh, CURLUPART_QUERY, &data->state.up.query, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user