Browse code

bb9735 - Add ability to purge engine cache

Shawn Webb authored on 2014/02/26 02:51:14
Showing 4 changed files
... ...
@@ -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
... ...
@@ -89,6 +89,7 @@ CLAMAV_PRIVATE {
89 89
     cli_hashstream;
90 90
     html_normalise_map;
91 91
     cli_utf16toascii;
92
+    cli_cache_purge;
92 93
 
93 94
     cli_malloc;
94 95
     cli_memstr;
... ...
@@ -70,6 +70,7 @@ EXPORTS cl_validate_certificate_chain @62
70 70
 EXPORTS cl_load_cert @63
71 71
 EXPORTS cl_ASN1_GetTimeT @64
72 72
 EXPORTS cl_load_crl @65
73
+EXPORTS cli_cache_purge @66
73 74
 
74 75
 ; path variables
75 76
 ; --------------