Index: squid/src/acl.c diff -c squid/src/acl.c:1.270.2.18 squid/src/acl.c:1.270.2.19 *** squid/src/acl.c:1.270.2.18 Sat Nov 29 01:59:23 2003 --- squid/src/acl.c Fri Dec 19 09:34:22 2003 *************** *** 178,183 **** --- 178,185 ---- return ACL_MAX_USER_IP; if (!strcmp(s, "external")) return ACL_EXTERNAL; + if (!strcmp(s, "urllogin")) + return ACL_URLLOGIN; return ACL_NONE; } *************** *** 252,257 **** --- 254,261 ---- return "max_user_ip"; if (type == ACL_EXTERNAL) return "external"; + if (type == ACL_URLLOGIN) + return "urllogin"; return "ERROR"; } *************** *** 737,742 **** --- 741,747 ---- aclParseTimeSpec(&A->data); break; case ACL_URL_REGEX: + case ACL_URLLOGIN: case ACL_URLPATH_REGEX: case ACL_BROWSER: case ACL_REFERER_REGEX: *************** *** 1464,1469 **** --- 1469,1475 ---- 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,1572 **** --- 1573,1584 ---- 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,2119 **** --- 2126,2132 ---- #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,2534 **** --- 2542,2548 ---- 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: squid/src/cf.data.pre diff -c squid/src/cf.data.pre:1.245.2.56 squid/src/cf.data.pre:1.245.2.57 *** squid/src/cf.data.pre:1.245.2.56 Sun Dec 14 06:33:44 2003 --- squid/src/cf.data.pre Fri Dec 19 09:34:22 2003 *************** *** 1966,1971 **** --- 1966,1972 ---- h1:m1 must be less than h2:m2 acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL acl aclname urlpath_regex [-i] \.gif$ ... # regex matching on URL path + acl aclname urllogin [-i] [^a-zA-Z0-9] ... # regex matching on URL login field acl aclname port 80 70 21 ... acl aclname port 0-1024 ... # ranges allowed acl aclname myport 3128 ... # (local socket TCP port) Index: squid/src/enums.h diff -c squid/src/enums.h:1.203.2.8 squid/src/enums.h:1.203.2.9 *** squid/src/enums.h:1.203.2.8 Mon Jan 20 17:06:39 2003 --- squid/src/enums.h Fri Dec 19 09:34:23 2003 *************** *** 136,141 **** --- 136,142 ---- ACL_REP_MIME_TYPE, ACL_MAX_USER_IP, ACL_EXTERNAL, + ACL_URLLOGIN, ACL_ENUM_MAX } squid_acl;