*Отправитель:* Robert Collins <robertc@squid-cache.org>
*Тема:* Re: Re : Re: need help about squid internal architecture
*Дата:* 15 Feb 2003 23:33:02 +1100
*Кому:* atit_ldce <atit_ldce@icenet.net>
*Копия:* squid-dev@squid-cache.org

On Sun, 2003-02-16 at 04:49, atit_ldce wrote:
> how aclMatchAclList function works?
> can u explain structures used for acl. just give explanation of fields
within structures

it's built up:
first you have an acl, which store the data for one acl
ie in squid.conf
acl foo dstdomain foo.com
acl foo dstdomain bar.com

results in a single acl structure that contains both foo.com and
bar.com.

Then you have acl_access structures. Each acl_access structure links a
set of acl's, with an optional negate (!), and an action to take.

i.e.
http_access deny !foo

results in a acl_access structure that
has an action of deny
contains a single acl - foo, with operator (!) against the result of
foo.

Finally, you have an acl checklist, which is used to evaluate against an
acl_access list, and through there the acl's.

During a check operation on the checklist, after each acl is checked, an
async activity (ie dns lookup) may be triggered. If that is triggered,
checklist processing stops until it completes.

This is a lot more clear in the current HEAD code, where I have put some
effort into seprating out the components more.

Rob
-- 
GPG key available at: <http://users.bigpond.net.au/robertc/keys.txt
</Redirect/users.bigpond.net.au/robertc/keys.txt>>.
