Index: squid/src/acl.c diff -c squid/src/acl.c:1.270.2.15 squid/src/acl.c:1.270.2.16 *** squid/src/acl.c:1.270.2.15 Wed May 7 13:55:00 2003 --- squid/src/acl.c Sat May 10 16:17:44 2003 *************** *** 1693,1698 **** --- 1693,1699 ---- { while (list) { int answer; + checklist->current_acl = list->acl; AclMatchedName = list->acl->name; debug(28, 3) ("aclMatchAclList: checking %s%s\n", list->op ? null_string : "!", list->acl->name); *************** *** 1719,1724 **** --- 1720,1726 ---- cbdataUnlock(checklist->extacl_entry); checklist->extacl_entry = NULL; } + checklist->current_acl = NULL; } int *************** *** 1825,1831 **** } #endif else if (checklist->state[ACL_EXTERNAL] == ACL_LOOKUP_NEEDED) { ! acl *acl = aclFindByName(AclMatchedName); externalAclLookup(checklist, acl->data, aclLookupExternalDone, checklist); return; } --- 1827,1834 ---- } #endif else if (checklist->state[ACL_EXTERNAL] == ACL_LOOKUP_NEEDED) { ! acl *acl = checklist->current_acl; ! assert(acl->type == ACL_EXTERNAL); externalAclLookup(checklist, acl->data, aclLookupExternalDone, checklist); return; } Index: squid/src/external_acl.c diff -c squid/src/external_acl.c:1.1.2.22 squid/src/external_acl.c:1.1.2.23 *** squid/src/external_acl.c:1.1.2.22 Wed Apr 9 06:35:25 2003 --- squid/src/external_acl.c Sat May 10 16:17:44 2003 *************** *** 437,443 **** debug(82, 1) ("aclMatchExternal: '%s' queue overload. Request rejected.\n", acl->def->name); else ch->state[ACL_EXTERNAL] = ACL_LOOKUP_NEEDED; ! return 0; } external_acl_cache_touch(acl->def, entry); result = entry->result; --- 437,443 ---- debug(82, 1) ("aclMatchExternal: '%s' queue overload. Request rejected.\n", acl->def->name); else ch->state[ACL_EXTERNAL] = ACL_LOOKUP_NEEDED; ! return -1; } external_acl_cache_touch(acl->def, entry); result = entry->result; Index: squid/src/structs.h diff -c squid/src/structs.h:1.408.2.10 squid/src/structs.h:1.408.2.11 *** squid/src/structs.h:1.408.2.10 Tue May 6 14:13:03 2003 --- squid/src/structs.h Sat May 10 16:17:44 2003 *************** *** 296,301 **** --- 296,302 ---- PF *callback; void *callback_data; external_acl_entry *extacl_entry; + acl *current_acl; /* private, used by aclCheck */ }; struct _wordlist {