static void cachePurge(Cache * cache, storeSwapLogData * s, int update_digest) { CacheEntry *olde = (CacheEntry *) hash_lookup(cache->hash, s->key); if (!olde) { cache->bad_del_count++; } else { assert(cache->count); hash_remove_link(cache->hash, (hash_link *) olde); if (update_digest) cacheDigestDel(cache->digest, s->key); cacheEntryDestroy(olde); cache->count--; } }
void storeDigestDel(const StoreEntry * entry) { #if USE_CACHE_DIGESTS if (!Config.onoff.digest_generation) { return; } assert(entry && store_digest); debug(71, 6) ("storeDigestDel: checking entry, key: %s\n", storeKeyText(entry->hash.key)); if (!EBIT_TEST(entry->flags, KEY_PRIVATE)) { if (!cacheDigestTest(store_digest, entry->hash.key)) { sd_stats.del_lost_count++; debug(71, 6) ("storeDigestDel: lost entry, key: %s url: %s\n", storeKeyText(entry->hash.key), storeUrl(entry)); } else { sd_stats.del_count++; cacheDigestDel(store_digest, entry->hash.key); debug(71, 6) ("storeDigestDel: deled entry, key: %s\n", storeKeyText(entry->hash.key)); } } #endif }