Index: squid/src/acl.c diff -c squid/src/acl.c:1.270.2.35 squid/src/acl.c:1.270.2.36 *** squid/src/acl.c:1.270.2.35 Fri Mar 4 09:22:16 2005 --- squid/src/acl.c Wed Mar 30 15:46:41 2005 *************** *** 975,983 **** acl *a; if (NULL == name) return 0; ! if ((a = aclFindByName(name))) ! return a->type == ACL_PROXY_AUTH || a->type == ACL_PROXY_AUTH_REGEX; ! return 0; } --- 975,992 ---- acl *a; if (NULL == name) return 0; ! a = aclFindByName(name); ! if (a == NULL) ! return 0; ! switch (a->type) { ! case ACL_PROXY_AUTH: ! case ACL_PROXY_AUTH_REGEX: ! return 1; ! case ACL_EXTERNAL: ! return externalAclRequiresAuth(a->data); ! default: ! return 0; ! } } Index: squid/src/external_acl.c diff -c squid/src/external_acl.c:1.1.2.33 squid/src/external_acl.c:1.1.2.34 *** squid/src/external_acl.c:1.1.2.33 Sun Feb 20 04:02:56 2005 --- squid/src/external_acl.c Wed Mar 30 15:46:41 2005 *************** *** 838,843 **** --- 838,850 ---- memBufClean(&buf); } + int + externalAclRequiresAuth(void *acl_data) + { + external_acl_data *acl = acl_data; + return acl->def->require_auth; + } + static void externalAclStats(StoreEntry * sentry) { Index: squid/src/protos.h diff -c squid/src/protos.h:1.420.2.30 squid/src/protos.h:1.420.2.31 *** squid/src/protos.h:1.420.2.30 Sat Mar 26 10:36:01 2005 --- squid/src/protos.h Wed Mar 30 15:46:41 2005 *************** *** 1334,1339 **** --- 1334,1340 ---- extern void externalAclLookup(aclCheck_t * ch, void *acl_data, EAH * handler, void *data); extern void externalAclInit(void); extern void externalAclShutdown(void); + extern int externalAclRequiresAuth(void *acl_data); extern char *strtokFile(void); #endif /* SQUID_PROTOS_H */