httpauth: make multi-request auth work with custom port

When doing HTTP authentication and a port number set with CURLOPT_PORT,
the code would previously have the URL's port number override as if it
had been a redirect to an absolute URL.

Added test 1568 to verify.

Reported-by: UrsusArctos on github
Fixes #6397
Closes #6400
This commit is contained in:
Daniel Stenberg 2021-01-01 23:41:21 +01:00
parent 725ec470e2
commit 648712eec1
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 158 additions and 13 deletions

View file

@ -2003,7 +2003,9 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
}
else {
unsigned long port = strtoul(data->state.up.port, NULL, 10);
conn->port = conn->remote_port = curlx_ultous(port);
conn->port = conn->remote_port =
(data->set.use_port && data->state.allow_port) ?
(int)data->set.use_port : curlx_ultous(port);
}
(void)curl_url_get(uh, CURLUPART_QUERY, &data->state.up.query, 0);