... | ... |
@@ -799,6 +799,21 @@ void cli_cache_destroy(struct cl_engine *engine) { |
799 | 799 |
mpool_free(engine->mempool, cache); |
800 | 800 |
} |
801 | 801 |
|
802 |
+void cli_cache_purge(struct cl_engine *engine) { |
|
803 |
+ unsigned int i; |
|
804 |
+ |
|
805 |
+ if (!(engine) || !(engine->cache)) |
|
806 |
+ return; |
|
807 |
+ |
|
808 |
+ if (engine->engine_options & ENGINE_OPTIONS_DISABLE_CACHE) |
|
809 |
+ return; |
|
810 |
+ |
|
811 |
+ for (i=0; i < TREES; i++) { |
|
812 |
+ cacheset_destroy(&(engine->cache[i].cacheset), engine->mempool); |
|
813 |
+ cacheset_init(&(engine->cache[i].cacheset), engine->mempool); |
|
814 |
+ } |
|
815 |
+} |
|
816 |
+ |
|
802 | 817 |
/* Looks up an hash in the proper tree */ |
803 | 818 |
static int cache_lookup_hash(unsigned char *md5, size_t len, struct CACHE *cache, uint32_t reclevel) { |
804 | 819 |
unsigned int key = getkey(md5); |
... | ... |
@@ -30,4 +30,6 @@ void cache_remove(unsigned char *md5, size_t size, const struct cl_engine *engin |
30 | 30 |
int cache_check(unsigned char *hash, cli_ctx *ctx); |
31 | 31 |
int cli_cache_init(struct cl_engine *engine); |
32 | 32 |
void cli_cache_destroy(struct cl_engine *engine); |
33 |
+void cli_cache_purge(struct cl_engine *engine); |
|
34 |
+ |
|
33 | 35 |
#endif |