diff -urN squid-2.5.STABLE5.vanilla/src/acl.c squid-2.5.STABLE5/src/acl.c --- squid-2.5.STABLE5.vanilla/src/acl.c 2004-02-27 17:36:35.000000000 +0100 +++ squid-2.5.STABLE5/src/acl.c 2004-06-22 10:23:34.839051573 +0200 @@ -128,6 +128,8 @@ return ACL_URLPATH_REGEX; if (!strcmp(s, "urlpath_regex")) return ACL_URLPATH_REGEX; + if (!strcmp(s, "urlpath_raw_regex")) + return ACL_URLPATH_RAW_REGEX; if (!strcmp(s, "url_regex")) return ACL_URL_REGEX; if (!strcmp(s, "port")) @@ -204,6 +206,8 @@ return "time"; if (type == ACL_URLPATH_REGEX) return "urlpath_regex"; + if (type == ACL_URLPATH_RAW_REGEX) + return "urlpath_raw_regex"; if (type == ACL_URL_REGEX) return "url_regex"; if (type == ACL_URL_PORT) @@ -746,6 +750,7 @@ case ACL_URL_REGEX: case ACL_URLLOGIN: case ACL_URLPATH_REGEX: + case ACL_URLPATH_RAW_REGEX: case ACL_BROWSER: case ACL_REFERER_REGEX: case ACL_SRC_DOM_REGEX: @@ -1474,6 +1479,7 @@ case ACL_REP_MIME_TYPE: case ACL_REQ_MIME_TYPE: case ACL_URLPATH_REGEX: + case ACL_URLPATH_RAW_REGEX: case ACL_URL_PORT: case ACL_URL_REGEX: case ACL_URLLOGIN: @@ -1574,6 +1580,12 @@ safe_free(esc_buf); return k; /* NOTREACHED */ + case ACL_URLPATH_RAW_REGEX: + esc_buf = xstrdup(strBuf(r->urlpath)); + k = aclMatchRegex(ae->data, esc_buf); + safe_free(esc_buf); + return k; + /* NOTREACHED */ case ACL_URL_REGEX: esc_buf = xstrdup(urlCanonical(r)); rfc1738_unescape(esc_buf); @@ -2155,6 +2167,7 @@ case ACL_URL_REGEX: case ACL_URLLOGIN: case ACL_URLPATH_REGEX: + case ACL_URLPATH_RAW_REGEX: case ACL_BROWSER: case ACL_REFERER_REGEX: case ACL_SRC_DOM_REGEX: @@ -2570,7 +2583,7 @@ case ACL_PROXY_AUTH_REGEX: case ACL_URL_REGEX: case ACL_URLLOGIN: - case ACL_URLPATH_REGEX: + case ACL_URLPATH_RAW_REGEX: case ACL_BROWSER: case ACL_REFERER_REGEX: case ACL_SRC_DOM_REGEX: diff -urN squid-2.5.STABLE5.vanilla/src/cf.data.pre squid-2.5.STABLE5/src/cf.data.pre --- squid-2.5.STABLE5.vanilla/src/cf.data.pre 2004-02-10 22:01:21.000000000 +0100 +++ squid-2.5.STABLE5/src/cf.data.pre 2004-06-22 10:36:53.516068180 +0200 @@ -2004,6 +2004,7 @@ 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 urlpath_raw_regex [-i] %2egif$ ... # regex matching on raw (i.e. not unescaped) 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 diff -urN squid-2.5.STABLE5.vanilla/src/enums.h squid-2.5.STABLE5/src/enums.h --- squid-2.5.STABLE5.vanilla/src/enums.h 2004-02-04 18:42:28.000000000 +0100 +++ squid-2.5.STABLE5/src/enums.h 2004-06-22 10:23:34.840051427 +0200 @@ -107,6 +107,7 @@ ACL_DST_DOM_REGEX, ACL_TIME, ACL_URLPATH_REGEX, + ACL_URLPATH_RAW_REGEX, ACL_URL_REGEX, ACL_URL_PORT, ACL_MY_PORT,