]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix fastCheck() default result on multi-line actions.
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 22 Oct 2011 00:42:39 +0000 (13:42 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 22 Oct 2011 00:42:39 +0000 (13:42 +1300)
fastCheck() on multiple lines was using the last lines action instead
of the DUNNO state replacement for inversion.

This updated fastCheck() to only use a config lines result state if that
line fully matched. In accordance with documented ACL behaviour.

src/acl/Checklist.cc

index b558f18eb9c9dc1cf50ea87a49fd458f6b36da0b..38d21d383cf8dafa195af928e3b8df7364301010 100644 (file)
@@ -350,9 +350,9 @@ ACLChecklist::fastCheck()
     debugs(28, 5, "aclCheckFast: list: " << accessList);
     const acl_access *acl = cbdataReference(accessList);
     while (acl != NULL && cbdataReferenceValid(acl)) {
-        currentAnswer(acl->allow);
         matchAclList(acl->aclList, true);
         if (finished()) {
+            currentAnswer(acl->allow);
             PROF_stop(aclCheckFast);
             cbdataReferenceDone(acl);
             return currentAnswer();