diff -bur squid-2.5.STABLE12/src/cf.data.pre squid-2.5.STABLE12.japc/src/cf.data.pre --- squid-2.5.STABLE12/src/cf.data.pre 2005-10-20 18:28:08.000000000 +0100 +++ squid-2.5.STABLE12.japc/src/cf.data.pre 2006-03-11 00:20:56.000000000 +0000 @@ -514,6 +514,16 @@ DOC_END +NAME: uri_ender +TYPE: wordlist +DEFAULT: none +LOC: Config.uri_ender +DOC_START + A list of words/character which, if found in a URI, cause the remaining + of the URI, including this word/character to be ignored as if non-existant +DOC_END + + NAME: no_cache TYPE: acl_access DEFAULT: none diff -bur squid-2.5.STABLE12/src/client_side.c squid-2.5.STABLE12.japc/src/client_side.c --- squid-2.5.STABLE12/src/client_side.c 2005-10-18 16:22:26.000000000 +0100 +++ squid-2.5.STABLE12.japc/src/client_side.c 2006-03-11 00:09:00.000000000 +0000 @@ -2609,6 +2609,7 @@ size_t req_sz; method_t method; clientHttpRequest *http = NULL; + const wordlist *p = NULL; #if IPF_TRANSPARENT struct natlookup natLookup; static int natfd = -1; @@ -2748,6 +2750,12 @@ *t = '\0'; #endif + /* scan uri_ender */ + for (p = Config.uri_ender; p; p = p->next) + if ((t = strstr(url, p->key))) /* remove cgi, swf, ... parameters */ + *t = '\0'; + debug(33, 5) ("parseHttpRequest: URI post uri_ender is '%s'\n", url); + /* handle direct internal objects */ if ((!Config2.Accel.on || Config.onoff.global_internal_static) && internalCheck(url)) { /* prepend our name & port */ diff -bur squid-2.5.STABLE12/src/structs.h squid-2.5.STABLE12.japc/src/structs.h --- squid-2.5.STABLE12/src/structs.h 2005-09-03 10:14:43.000000000 +0100 +++ squid-2.5.STABLE12.japc/src/structs.h 2006-03-10 23:51:52.000000000 +0000 @@ -537,6 +537,7 @@ squid_off_t tcpRcvBufsz; squid_off_t udpMaxHitObjsz; wordlist *hierarchy_stoplist; + wordlist *uri_ender; wordlist *mcast_group_list; wordlist *dns_testname_list; wordlist *dns_nameservers;