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);
 

Reply via email to