On 24/05/17 20:31, Christos Tsantilas wrote:
Adds support for --long-acl-options
This patch adds 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.
Okay, think I've got it now. Sorry it took so long to get around to. I'm
not completely sure I saw everything yet, but I'm unlikely to do a
better job of review anytime soon.
Just one thing to add on top of Ales' requests:
* please use src/acl/forward.h instead of AclRegs.h to define the global
Init() function. There is no real need AFAICT to add the new file now
only to remove again in the followup patch that will be needed to move
AclRegs.cc into src/acl/ where it belongs.
+1 with the above change and Alexs' polishing requests.
Amos
_______________________________________________
squid-dev mailing list
[email protected]
http://lists.squid-cache.org/listinfo/squid-dev