/*
- * $Id: ACLChecklist.cc,v 1.15 2003/09/21 00:30:48 robertc Exp $
+ * $Id: ACLChecklist.cc,v 1.16 2003/09/21 12:06:06 robertc Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
debug (28,3)("ACLChecklist::markFinished: %p checklist processing finished\n", this);
}
+void
+ACLChecklist::preCheck()
+{
+ debug(28, 3) ("ACLChecklist::preCheck: %p checking '%s'\n", this, accessList->cfgline);
+ /* what is our result on a match? */
+ currentAnswer(accessList->allow);
+}
+
void
ACLChecklist::checkAccessList()
{
+ preCheck();
/* does the current AND clause match */
matchAclListSlow(accessList->aclList);
}
ACLChecklist::matchAclList(const acl_list * head, bool const fast)
{
PROF_start(aclMatchAclList);
- debug(28, 3) ("ACLChecklist::matchAclList: %p checking '%s'\n", this, accessList->cfgline);
- /* what is our result on a match? */
- currentAnswer(accessList->allow);
const acl_list *node = head;
while (node) {
debug(28, 5) ("aclCheckFast: list: %p\n", accessList);
while (accessList) {
+ preCheck();
matchAclListFast(accessList->aclList);
if (finished()) {
/*
- * $Id: ACLChecklist.h,v 1.18 2003/09/21 00:30:48 robertc Exp $
+ * $Id: ACLChecklist.h,v 1.19 2003/09/21 12:06:06 robertc Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
void nonBlockingCheck(PF * callback, void *callback_data);
int fastCheck();
void checkCallback(allow_t answer);
+ void preCheck();
_SQUID_INLINE_ bool matchAclListFast(const acl_list * list);
_SQUID_INLINE_ void matchAclListSlow(const acl_list * list);
ConnStateData::Pointer conn();