From: Alex Rousskov Date: Tue, 28 May 2013 16:29:39 +0000 (-0600) Subject: Improve ACL handling. Support all-of and any-of ACL types. X-Git-Tag: SQUID_3_4_0_1~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61017a886b4884845571007b5745664e3d346ebc;p=thirdparty%2Fsquid.git Improve ACL handling. Support all-of and any-of ACL types. This commit encapsulated many significant ACL changes, including: * Expressiveness: Two new boolean ACLs (all-of and any-of) that allow admins to group ACLs as needed, to express complex conditions more naturally, with fewer squid.conf lines. Conditions such as "(a or b) and (c or d)" are easily expressed now. Explicit groups of ACLs of different types can now be configured, named, and used in any ACL expression. * Correctness and performance: When a slow ACL (that has suspended checks to wait for an async lookup) is ready to resume checking, Squid resumes checking from that ACL, instead of rechecking all ACLs for the same action (or the same squid.conf directive) again. * Internals: Store ACL-related configurations as an expression tree, streamlining the code and clearing the way for future math-style/natural ACL conditions support. The usual boolean operators (and, or, and not) form intermediate nodes while good old configurable ACLs become tree leaves. The new all-of and any-of ACLs use the boolean operators (and also become intermediate nodes, of course). --- 61017a886b4884845571007b5745664e3d346ebc