]> git.ipfire.org Git - thirdparty/squid.git/commit - src/acl/Checklist.h
Major ACL handling update, including the following changes:
authorAlex Rousskov <rousskov@measurement-factory.com>
Mon, 13 May 2013 22:48:23 +0000 (16:48 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Mon, 13 May 2013 22:48:23 +0000 (16:48 -0600)
commit6f58d7d7a975665078c7a748faf88188a34252ae
tree45d0f3251a343573882be75c99eb1be36b8b6b5d
parentcf9f0261d2588344038a89f764325b80179a7e0d
Major ACL handling update, including the following changes:

* 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, resume 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.
52 files changed:
src/AclRegs.cc
src/CachePeer.h
src/ClientDelayConfig.cc
src/ClientDelayConfig.h
src/DelayConfig.cc
src/DelayPool.h
src/HttpHeaderTools.h
src/Notes.cc
src/Notes.h
src/SquidConfig.h
src/acl/Acl.cc
src/acl/Acl.h
src/acl/AclNameList.h
src/acl/AclSizeLimit.h
src/acl/AllOf.cc [new file with mode: 0644]
src/acl/AllOf.h [new file with mode: 0644]
src/acl/AnyOf.cc [new file with mode: 0644]
src/acl/AnyOf.h [new file with mode: 0644]
src/acl/Asn.cc
src/acl/Checklist.cc
src/acl/Checklist.h
src/acl/DestinationDomain.cc
src/acl/DestinationIp.cc
src/acl/FilledChecklist.h
src/acl/Gadgets.cc
src/acl/Gadgets.h
src/acl/InnerNode.cc [new file with mode: 0644]
src/acl/InnerNode.h [new file with mode: 0644]
src/acl/Makefile.am
src/acl/SourceDomain.cc
src/acl/Tree.cc [new file with mode: 0644]
src/acl/Tree.h [new file with mode: 0644]
src/acl/forward.h [new file with mode: 0644]
src/adaptation/AccessRule.cc
src/adaptation/AccessRule.h
src/adaptation/Config.h
src/adaptation/icap/Config.h
src/auth/Acl.cc
src/auth/AclMaxUserIp.cc
src/auth/AclProxyAuth.cc
src/cache_cf.cc
src/cf.data.pre
src/cf_gen.cc
src/client_side_request.cc
src/client_side_request.h
src/defines.h
src/external_acl.cc
src/globals.h
src/ident/AclIdent.cc
src/ip/QosConfig.h
src/log/CustomLog.h
src/ssl/ProxyCerts.h