]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup of AuthUserRequest->lastReply to keep ACL_AUTHENTICATED state
authorhno <>
Wed, 3 Jan 2007 19:57:47 +0000 (19:57 +0000)
committerhno <>
Wed, 3 Jan 2007 19:57:47 +0000 (19:57 +0000)
short-circuiting acl processing a bit when there is multiple auth acls
involved, and preparing for future auth related work.

src/AuthUserRequest.cc

index 8a0404f1a0bb541bd4da0ff689efc5095687cd72..25e3353ceca89ace4ec27ad764990caf71585a3c 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: AuthUserRequest.cc,v 1.10 2007/01/03 12:40:41 hno Exp $
+ * $Id: AuthUserRequest.cc,v 1.11 2007/01/03 12:57:47 hno Exp $
  *
  * DO NOT MODIFY NEXT 2 LINES:
  * arch-tag: 6803fde1-d5a2-4c29-9034-1c0c9f650eb4
@@ -562,6 +562,10 @@ AuthUserRequest::tryToAuthenticateAndSetAuthUser(auth_user_request_t ** auth_use
         if (!*auth_user_request)
             *auth_user_request = t;
 
+       if (!request->auth_user_request && t->lastReply == AUTH_AUTHENTICATED) {
+           request->auth_user_request = t;
+           t->lock();
+       }
         return t->lastReply;
     }
 
@@ -651,7 +655,8 @@ AuthUserRequest::addReplyAuthHeader(HttpReply * rep, auth_user_request_t * auth_
     if (auth_user_request != NULL)
     {
         auth_user_request->addHeader(rep, accelerated);
-        auth_user_request->lastReply = AUTH_ACL_CANNOT_AUTHENTICATE;
+       if (auth_user_request->lastReply != AUTH_AUTHENTICATED)
+           auth_user_request->lastReply = AUTH_ACL_CANNOT_AUTHENTICATE;
     }
 }