diff -wurNbB squid-2.3.STABLE3PR3/src/cache_cf.c squid-2.3.STABLE3PR4/src/cache_cf.c --- squid-2.3.STABLE3PR3/src/cache_cf.c Wed May 17 09:45:53 2000 +++ squid-2.3.STABLE3PR4/src/cache_cf.c Wed May 17 09:51:59 2000 @@ -596,6 +596,7 @@ safe_free(cfg->names[i]); } aclDestroyAccessList(&cfg->access[i]); + aclDestroyAccessList(&cfg->reject); } delayFreeDelayData(); xfree(cfg->class); diff -wurNbB squid-2.3.STABLE3PR3/src/cf.data.pre squid-2.3.STABLE3PR4/src/cf.data.pre --- squid-2.3.STABLE3PR3/src/cf.data.pre Wed May 17 09:45:54 2000 +++ squid-2.3.STABLE3PR4/src/cf.data.pre Wed May 17 09:51:59 2000 @@ -2828,6 +2828,20 @@ -> bits 17 through 32 are "c * 256 + d" DOC_END +NAME: delay_reject +TYPE: acl_access +DEFAULT: none +DEFAULT_IF_NONE: deny all +IFDEF: DELAY_POOLS +LOC: Config.Delay.reject +DOC_START + This is used to avoid some acesses to be subject to delay pools + If matched, delay pools are bypassed. + +delay_reject allow all_internal_accesses +delay_reject deny all +DOC_END + NAME: delay_access TYPE: delay_pool_access DEFAULT: none diff -wurNbB squid-2.3.STABLE3PR3/src/delay_pools.c squid-2.3.STABLE3PR4/src/delay_pools.c --- squid-2.3.STABLE3PR3/src/delay_pools.c Wed May 17 09:49:35 2000 +++ squid-2.3.STABLE3PR4/src/delay_pools.c Wed May 17 09:51:59 2000 @@ -323,6 +323,12 @@ debug(77, 2) ("delayClient: WARNING: Called with 'allones' address, ignoring\n"); return delayId(0, 0); } + + if (aclCheckFast(Config.Delay.reject, &ch)) { + debug(77, 2) ("delayClient: This request bypasses delay pools\n" ); + return delayId(0, 0); + } + for (pool = 0; pool < Config.Delay.pools; pool++) { if (aclCheckFast(Config.Delay.access[pool], &ch)) break; diff -wurNbB squid-2.3.STABLE3PR3/src/structs.h squid-2.3.STABLE3PR4/src/structs.h --- squid-2.3.STABLE3PR3/src/structs.h Wed May 17 09:45:54 2000 +++ squid-2.3.STABLE3PR4/src/structs.h Wed May 17 09:51:59 2000 @@ -218,6 +218,7 @@ unsigned char **names; delaySpecSet **rates; acl_access **access; + acl_access *reject; }; #endif