From: robertc <> Date: Tue, 18 Feb 2003 17:15:27 +0000 (+0000) Subject: Summary: ACL bugfix - prevent multiple async calls. X-Git-Tag: SQUID_3_0_PRE1~326 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5238df0b73f164bd833c75ac8f549bfb50197f4e;p=thirdparty%2Fsquid.git Summary: ACL bugfix - prevent multiple async calls. Keywords: acl checking on failed-and-needing-async-lookups with the ! operator, leads to multiple lookups being needed. So, we stop processing the current checklist when a async state is detected. --- diff --git a/src/ACLChecklist.cc b/src/ACLChecklist.cc index 4b16baac99..2ff64154ab 100644 --- a/src/ACLChecklist.cc +++ b/src/ACLChecklist.cc @@ -1,5 +1,5 @@ /* - * $Id: ACLChecklist.cc,v 1.4 2003/02/17 07:01:34 robertc Exp $ + * $Id: ACLChecklist.cc,v 1.5 2003/02/18 10:15:27 robertc Exp $ * * DEBUG: section 28 Access Control * AUTHOR: Duane Wessels @@ -223,7 +223,7 @@ ACLChecklist::matchAclList(const acl_list * head, bool const fast) bool nodeMatched = node->matches(this); if (fast) changeState(NullState::Instance()); - if (!nodeMatched) { + if (!nodeMatched || state_ != NullState::Instance()) { debug(28, 3) ("aclmatchAclList: returning false (AND list entry failed to match)\n"); PROF_stop(aclMatchAclList); return false;