Index: src/acl.c =================================================================== RCS file: /server/cvs-server/squid/squid/src/acl.c,v retrieving revision 1.270.2.18 diff -u -3 -p -r1.270.2.18 acl.c --- src/acl.c 29 Nov 2003 08:59:23 -0000 1.270.2.18 +++ src/acl.c 18 Dec 2003 21:54:43 -0000 @@ -178,6 +178,8 @@ aclStrToType(const char *s) return ACL_MAX_USER_IP; if (!strcmp(s, "external")) return ACL_EXTERNAL; + if (!strcmp(s, "urllogin")) + return ACL_URLLOGIN; return ACL_NONE; } @@ -252,6 +254,8 @@ aclTypeToStr(squid_acl type) return "max_user_ip"; if (type == ACL_EXTERNAL) return "external"; + if (type == ACL_URLLOGIN) + return "urllogin"; return "ERROR"; } @@ -737,6 +741,7 @@ aclParseAclLine(acl ** head) aclParseTimeSpec(&A->data); break; case ACL_URL_REGEX: + case ACL_URLLOGIN: case ACL_URLPATH_REGEX: case ACL_BROWSER: case ACL_REFERER_REGEX: @@ -1464,6 +1469,7 @@ aclMatchAcl(acl * ae, aclCheck_t * check case ACL_URLPATH_REGEX: case ACL_URL_PORT: case ACL_URL_REGEX: + case ACL_URLLOGIN: /* These ACL types require checklist->request */ if (NULL == r) { debug(28, 1) ("WARNING: '%s' ACL is used but there is no" @@ -1567,6 +1573,12 @@ aclMatchAcl(acl * ae, aclCheck_t * check k = aclMatchRegex(ae->data, esc_buf); safe_free(esc_buf); return k; + case ACL_URLLOGIN: + esc_buf = xstrdup(r->login); + rfc1738_unescape(esc_buf); + k = aclMatchRegex(ae->data, esc_buf); + safe_free(esc_buf); + return k; /* NOTREACHED */ case ACL_MAXCONN: k = clientdbEstablished(checklist->src_addr, 0); @@ -2114,6 +2126,7 @@ aclDestroyAcls(acl ** head) #endif case ACL_PROXY_AUTH_REGEX: case ACL_URL_REGEX: + case ACL_URLLOGIN: case ACL_URLPATH_REGEX: case ACL_BROWSER: case ACL_REFERER_REGEX: @@ -2529,6 +2542,7 @@ aclDumpGeneric(const acl * a) return aclDumpTimeSpecList(a->data); case ACL_PROXY_AUTH_REGEX: case ACL_URL_REGEX: + case ACL_URLLOGIN: case ACL_URLPATH_REGEX: case ACL_BROWSER: case ACL_REFERER_REGEX: Index: src/enums.h =================================================================== RCS file: /server/cvs-server/squid/squid/src/enums.h,v retrieving revision 1.203.2.8 diff -u -3 -p -r1.203.2.8 enums.h --- src/enums.h 21 Jan 2003 00:06:39 -0000 1.203.2.8 +++ src/enums.h 18 Dec 2003 21:51:57 -0000 @@ -136,6 +136,7 @@ typedef enum { ACL_REP_MIME_TYPE, ACL_MAX_USER_IP, ACL_EXTERNAL, + ACL_URLLOGIN, ACL_ENUM_MAX } squid_acl;