http: fix auth_used and auth_avail

Fix http auth to set the `picked` auth when sending the corresponding
headers. Fix reporting Digest as avail.

Fixes #21274
Reported-by: sergio-nsk on github
Closes #21284
This commit is contained in:
Stefan Eissing 2026-04-10 10:57:47 +02:00 committed by Daniel Stenberg
parent a483128b01
commit afdd8f1290
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -723,6 +723,10 @@ static CURLcode output_auth_headers(struct Curl_easy *data,
if(auth) {
#ifndef CURL_DISABLE_PROXY
if(proxy)
data->info.proxyauthpicked = authstatus->picked;
else
data->info.httpauthpicked = authstatus->picked;
infof(data, "%s auth using %s with user '%s'",
proxy ? "Proxy" : "Server", auth,
proxy ? (data->state.aptr.proxyuser ?
@ -737,8 +741,13 @@ static CURLcode output_auth_headers(struct Curl_easy *data,
#endif
authstatus->multipass = !authstatus->done;
}
else
else {
authstatus->multipass = FALSE;
if(proxy)
data->info.proxyauthpicked = 0;
else
data->info.httpauthpicked = 0;
}
return result;
}
@ -945,8 +954,10 @@ static CURLcode auth_digest(struct Curl_easy *data,
struct auth *authp,
uint32_t *availp)
{
if(authp->avail & CURLAUTH_DIGEST)
if(authp->avail & CURLAUTH_DIGEST) {
*availp |= CURLAUTH_DIGEST;
infof(data, "Ignoring duplicate digest auth header.");
}
else if(Curl_auth_is_digest_supported()) {
CURLcode result;