urldata: connection bit ipv6_ip is wrong

Eliminate `conn->bits.ipv6_ip`

The bit was only correct for the first transfer using a connection. Use
`data->state.up.hostname` instead in places that need the URL hostname
in its original form.

Fix parseurlandfillconn() to not modify `data->state.up.hostname` before
copying the connection's hostname, but modify the copy instead, leaving
the URL hostname intact.

Closes #20919
This commit is contained in:
Stefan Eissing 2026-03-13 14:29:13 +01:00 committed by Daniel Stenberg
parent eb5af3a9c7
commit 412cd2577a
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 29 additions and 48 deletions

View file

@ -183,10 +183,7 @@ void Curl_http_proxy_get_destination(struct Curl_cfilter *cf,
else
*pport = cf->conn->remote_port;
if(*phostname != cf->conn->host.name)
*pipv6_ip = (strchr(*phostname, ':') != NULL);
else
*pipv6_ip = (bool)cf->conn->bits.ipv6_ip;
*pipv6_ip = (strchr(*phostname, ':') != NULL);
}
struct cf_proxy_ctx {