http://www.squid-cache.org/mail-archive/squid-users/200801/0364.html
Okay, this version might even work. Once I realised i had to reimplement the
original patch it was easy. There I go, tempting fate again.
http://www.squid-cache.org/bugs/show_bug.cgi?id=1278
Caveats. I don't know all the code (there's 70k lines, it might take a while).
The new struct member name and the function name suck, but match what's
already there.
--
ian j hart
--- src/acl.c.orig 2007-01-06 17:22:45.000000000 +0000
+++ src/acl.c 2008-01-21 22:46:42.000000000 +0000
@@ -1159,7 +1159,7 @@
case ACL_PROXY_AUTH_REGEX:
return 1;
case ACL_EXTERNAL:
- return externalAclRequiresAuth(a->data);
+ return externalAclIsProxyAuth(a->data);
default:
return 0;
}
--- src/external_acl.c.orig 2007-01-01 23:32:13.000000000 +0000
+++ src/external_acl.c 2008-01-21 22:54:24.000000000 +0000
@@ -95,6 +95,7 @@
int cache_entries;
dlink_list queue;
int require_auth;
+ int is_proxy_auth;
enum {
QUOTE_METHOD_SHELL = 1,
QUOTE_METHOD_URL
@@ -274,6 +275,10 @@
} else if (strcmp(token, "%LOGIN") == 0) {
format->type = EXT_ACL_LOGIN;
a->require_auth = 1;
+ a->is_proxy_auth = 1;
+ } else if (strcmp(token, "%NOAUTH") == 0) {
+ format->type = EXT_ACL_LOGIN;
+ a->require_auth = 1;
}
#if USE_IDENT
else if (strcmp(token, "%IDENT") == 0)
@@ -1096,10 +1101,10 @@
}
int
-externalAclRequiresAuth(void *acl_data)
+externalAclIsProxyAuth(void *acl_data)
{
external_acl_data *acl = acl_data;
- return acl->def->require_auth;
+ return acl->def->is_proxy_auth;
}
static void
--- src/protos.h.orig 2007-07-15 10:52:17.000000000 +0100
+++ src/protos.h 2008-01-21 22:52:29.000000000 +0000
@@ -1390,7 +1390,7 @@
extern void externalAclConfigure(void);
extern void externalAclInit(void);
extern void externalAclShutdown(void);
-extern int externalAclRequiresAuth(void *acl_data);
+extern int externalAclIsProxyAuth(void *acl_data);
extern char *strtokFile(void);
const char *externalAclMessage(external_acl_entry * entry);