]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Summary: ACL bugfix - prevent multiple async calls.
authorrobertc <>
Tue, 18 Feb 2003 17:15:27 +0000 (17:15 +0000)
committerrobertc <>
Tue, 18 Feb 2003 17:15:27 +0000 (17:15 +0000)
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.

src/ACLChecklist.cc

index 4b16baac9960fc61566caefb13c43c8be4c1a80c..2ff64154ab45bd59a08416bcbb8a8471a8078229 100644 (file)
@@ -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;