mirror of
https://github.com/moparisthebest/curl
synced 2024-12-23 16:48: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 *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;
|
||||
port = conn->port;
|
||||
}
|
||||
else if(conn->bits.conn_to_host)
|
||||
hostname = conn->conn_to_host.name;
|
||||
else
|
||||
@ -178,7 +181,7 @@ static void hashkey(struct connectdata *conn, char *buf,
|
||||
DEBUGASSERT(len > 32);
|
||||
|
||||
/* 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)
|
||||
|
@ -2027,7 +2027,7 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
|
||||
}
|
||||
else {
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user