From afdd8f1290b418896db75e01df4cb60712a892c8 Mon Sep 17 00:00:00 2001 From: Stefan Eissing Date: Fri, 10 Apr 2026 10:57:47 +0200 Subject: [PATCH] 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 --- lib/http.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/http.c b/lib/http.c index 908b27d72f..3cc68f705a 100644 --- a/lib/http.c +++ b/lib/http.c @@ -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; -- 2.47.3