From: Amos Jeffries Date: Wed, 10 Mar 2010 11:57:17 +0000 (+1300) Subject: Author: Henrik Nordstrom X-Git-Tag: SQUID_3_0_STABLE25~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1fa857c2d033512c429659d89d10a554c81f7791;p=thirdparty%2Fsquid.git Author: Henrik Nordstrom Bug 2367: Fix stale=true on digest requests with unknown nonce The nonce staleness check only worked if the stale nonce had not yet been garbage collected, often resulting in incorrect stale=false responses and resulting auth popups when using digest auth. Note: this fix is different from how it's done in squid-2 where fixHeader is called on all schemes in such conditions but only the active one with and auth_user_request. Not entirely sure why that is done, but commit message says something about Negotiate authentication. --- diff --git a/src/auth/digest/auth_digest.cc b/src/auth/digest/auth_digest.cc index 784cc5ef82..cff25b63ae 100644 --- a/src/auth/digest/auth_digest.cc +++ b/src/auth/digest/auth_digest.cc @@ -1309,6 +1309,7 @@ AuthDigestConfig::decode(char const *proxy_auth) if (!nonce) { /* we couldn't find a matching nonce! */ debugs(29, 2, "authenticateDigestDecode: Unexpected or invalid nonce received"); + digest_request->credentials(AuthDigestUserRequest::Failed); return authDigestLogUsername(username, digest_request); }