Index: squid/src/enums.h diff -u squid/src/enums.h:1.1.1.32 squid/src/enums.h:1.1.1.32.4.1 --- squid/src/enums.h:1.1.1.32 Wed May 19 23:27:13 1999 +++ squid/src/enums.h Fri Jun 11 22:41:30 1999 @@ -447,7 +447,8 @@ ENTRY_NEGCACHED, ENTRY_VALIDATED, ENTRY_BAD_LENGTH, - ENTRY_ABORTED + ENTRY_ABORTED, + ENTRY_NOT_HTTP_OK }; typedef enum { Index: squid/src/icp_v2.c diff -u squid/src/icp_v2.c:1.1.1.23 squid/src/icp_v2.c:1.1.1.23.14.1 --- squid/src/icp_v2.c:1.1.1.23 Sun Feb 14 23:30:01 1999 +++ squid/src/icp_v2.c Fri Jun 11 22:41:31 1999 @@ -173,6 +173,8 @@ return 0; if (Config.onoff.icp_hit_stale) return 1; + if (EBIT_TEST(e->flags, ENTRY_NOT_HTTP_OK)) + return 0; if (refreshCheckICP(e, request)) return 0; return 1; Index: squid/src/store_digest.c diff -u squid/src/store_digest.c:1.1.1.13 squid/src/store_digest.c:1.1.1.13.18.1 --- squid/src/store_digest.c:1.1.1.13 Sun Jan 24 09:34:21 1999 +++ squid/src/store_digest.c Fri Jun 11 22:41:32 1999 @@ -215,6 +215,12 @@ debug(71, 6) ("storeDigestAddable: NO: too big\n"); return 0; } + /* do not digest non-status 200 objects */ + if (EBIT_TEST(e->flags, ENTRY_NOT_HTTP_OK)) { + debug(71, 6) ("storeDigestAddable: NO: not status 200\n"); + return 0; + } + /* still here? check staleness */ /* Note: We should use the time of the next rebuild, not (cur_time+period) */ if (refreshCheckDigest(e, StoreDigestRebuildPeriod)) { Index: squid/src/store_swapout.c diff -u squid/src/store_swapout.c:1.1.1.14 squid/src/store_swapout.c:1.1.1.14.14.1 --- squid/src/store_swapout.c:1.1.1.14 Sun Feb 14 23:30:10 1999 +++ squid/src/store_swapout.c Fri Jun 11 22:41:32 1999 @@ -58,6 +58,9 @@ ctrlp->swapfilename = xstrdup(storeSwapFullPath(e->swap_file_number, NULL)); ctrlp->e = e; ctrlp->oldswapstatus = e->swap_status; + if (e->mem_obj->reply && e->mem_obj->reply->sline.status != HTTP_OK) { + EBIT_SET(e->flags, ENTRY_NOT_HTTP_OK); + } e->swap_status = SWAPOUT_OPENING; e->mem_obj->swapout.ctrl = ctrlp; store_open_disk_fd++;