/* Removes a hash from the cache */ void cache_remove(unsigned char *md5, size_t size, const struct cl_engine *engine) { unsigned int key = getkey(md5); struct CACHE *c; if(engine || !engine->cache) return; c = &engine->cache[key]; if(pthread_mutex_lock(&c->mutex)) { cli_errmsg("cli_add: mutex lock fail\n"); return; } #ifdef USE_LRUHASHCACHE cacheset_remove(&c->cacheset, md5, size, engine->mempool); #else #ifdef USE_SPLAY cacheset_remove(&c->cacheset, md5, size); #else #error #define USE_SPLAY or USE_LRUHASHCACHE #endif #endif pthread_mutex_unlock(&c->mutex); cli_dbgmsg("cache_remove: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", md5[0], md5[1], md5[2], md5[3], md5[4], md5[5], md5[6], md5[7], md5[8], md5[9], md5[10], md5[11], md5[12], md5[13], md5[14], md5[15]); return; }
/* Removes a hash from the cache */ void cache_remove(unsigned char *md5, size_t size, const struct cl_engine *engine) { unsigned int key = getkey(md5); struct CACHE *c; if(!engine || !engine->cache) return; if (engine->engine_options & ENGINE_OPTIONS_DISABLE_CACHE) { cli_dbgmsg("cache_remove: Caching disabled.\n"); return; } /* cli_warnmsg("cache_remove: key is %u\n", key); */ c = &engine->cache[key]; if(pthread_mutex_lock(&c->mutex)) { cli_errmsg("cli_add: mutex lock fail\n"); return; } #ifdef USE_LRUHASHCACHE cacheset_remove(&c->cacheset, md5, size, engine->mempool); #else #ifdef USE_SPLAY cacheset_remove(&c->cacheset, md5, size); #else #error #define USE_SPLAY or USE_LRUHASHCACHE #endif #endif pthread_mutex_unlock(&c->mutex); cli_dbgmsg("cache_remove: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", md5[0], md5[1], md5[2], md5[3], md5[4], md5[5], md5[6], md5[7], md5[8], md5[9], md5[10], md5[11], md5[12], md5[13], md5[14], md5[15]); return; }