]> git.ipfire.org Git - thirdparty/squid.git/commit - src/auth/AclMaxUserIp.h
Support for --long-acl-options
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Mon, 12 Jun 2017 14:48:28 +0000 (17:48 +0300)
committerChristos Tsantilas <chtsanti@users.sourceforge.net>
Mon, 12 Jun 2017 14:48:28 +0000 (17:48 +0300)
commit4eac3407573794dec7f40816dc1f1f3139c2e63e
tree40edf979e0f1f453da984c16c876948d433062f7
parentba98516fe565c5c4631fadbc191d78a23f9ae97d
Support for --long-acl-options

The old single-letter ACL "flags" code was refactored to support long option
names (with option-specific value types) without significant
per-ACL-object performance/RAM overheads and without creating a global
registry for all possible options. This refactoring (unexpectedly)
resulted in removal of a lot of unreliable static initialization code.

Refactoring fixed ACL flags parsing code that was dangerously misinterpreting
-i and +i flags in several contexts. For example, each of the three cases
below was misinterpreted as if three domains were configured (e.g., "+i",
"-z", and "example.com") on each line instead of one domain ("example.com"):

        acl parsedAsThreeDomains dstdomain +i -i .example.com
        acl parsedAsThreeDomains dstdomain -i +i .example.com
        acl parsedAsThreeDomains dstdomain +i -z .example.com

TODO: Finish ACL::clone() removal. Then consider removing any unused
ACLData::clone() and associated ACL/ACLData copying methods.

This is a Measurement Factory project.
116 files changed:
src/AclRegs.cc
src/ExternalACL.h
src/MessageDelayPools.h
src/acl/Acl.cc
src/acl/Acl.h
src/acl/AdaptationService.cc
src/acl/AdaptationService.h
src/acl/AllOf.h
src/acl/AnnotateClient.cc
src/acl/AnnotateClient.h
src/acl/AnnotateTransaction.cc
src/acl/AnnotateTransaction.h
src/acl/AnyOf.h
src/acl/Arp.h
src/acl/Asn.cc
src/acl/Asn.h
src/acl/AtStep.cc
src/acl/AtStep.h
src/acl/BoolOps.cc
src/acl/Browser.cc [deleted file]
src/acl/Browser.h [deleted file]
src/acl/Certificate.cc
src/acl/Certificate.h
src/acl/CharacterSetOption.h [new file with mode: 0644]
src/acl/ConnectionsEncrypted.h
src/acl/Data.h
src/acl/DestinationAsn.h
src/acl/DestinationDomain.cc
src/acl/DestinationDomain.h
src/acl/DestinationIp.cc
src/acl/DestinationIp.h
src/acl/Eui64.h
src/acl/ExtUser.cc
src/acl/ExtUser.h
src/acl/HasComponent.cc
src/acl/HasComponent.h
src/acl/HierCode.cc
src/acl/HierCode.h
src/acl/HttpRepHeader.cc
src/acl/HttpRepHeader.h
src/acl/HttpReqHeader.cc
src/acl/HttpReqHeader.h
src/acl/HttpStatus.h
src/acl/Ip.cc
src/acl/Ip.h
src/acl/LocalIp.h
src/acl/LocalPort.cc
src/acl/LocalPort.h
src/acl/Makefile.am
src/acl/MaxConnection.h
src/acl/Method.cc
src/acl/Method.h
src/acl/MyPortName.cc
src/acl/MyPortName.h
src/acl/Note.cc
src/acl/Note.h
src/acl/Options.cc [new file with mode: 0644]
src/acl/Options.h [new file with mode: 0644]
src/acl/PeerName.cc
src/acl/PeerName.h
src/acl/Protocol.cc
src/acl/Protocol.h
src/acl/Random.h
src/acl/Referer.cc [deleted file]
src/acl/Referer.h [deleted file]
src/acl/RegexData.cc
src/acl/RegexData.h
src/acl/ReplyHeaderStrategy.h
src/acl/ReplyMimeType.cc [deleted file]
src/acl/ReplyMimeType.h
src/acl/RequestHeaderStrategy.h
src/acl/RequestMimeType.cc [deleted file]
src/acl/RequestMimeType.h
src/acl/ServerCertificate.cc
src/acl/ServerCertificate.h
src/acl/ServerName.cc
src/acl/ServerName.h
src/acl/SourceAsn.h
src/acl/SourceDomain.cc
src/acl/SourceDomain.h
src/acl/SourceIp.h
src/acl/SquidError.cc
src/acl/SquidError.h
src/acl/SslError.cc
src/acl/SslError.h
src/acl/Strategised.h
src/acl/Strategy.h
src/acl/Tag.cc
src/acl/Tag.h
src/acl/Time.cc
src/acl/Time.h
src/acl/Url.cc
src/acl/Url.h
src/acl/UrlLogin.cc
src/acl/UrlLogin.h
src/acl/UrlPath.cc
src/acl/UrlPath.h
src/acl/UrlPort.cc
src/acl/UrlPort.h
src/acl/forward.h
src/auth/AclMaxUserIp.cc
src/auth/AclMaxUserIp.h
src/auth/AclProxyAuth.cc
src/auth/AclProxyAuth.h
src/base/CharacterSet.cc
src/base/CharacterSet.h
src/cache_cf.cc
src/external_acl.cc
src/ident/AclIdent.cc
src/ident/AclIdent.h
src/main.cc
src/snmp_core.cc
src/snmp_core.h
src/tests/stub_libauth_acls.cc
src/tests/testACLMaxUserIP.cc
src/tests/testACLMaxUserIP.h