[squid-dev] [PATCH] Adds support for --long-acl-options

Amos Jeffries squid3 at treenet.co.nz
Sat Jun 10 13:30:32 UTC 2017


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



More information about the squid-dev mailing list