From: Vsevolod Stakhov Date: Tue, 24 Jan 2017 12:25:03 +0000 (+0000) Subject: [Minor] Save symbols cache on reload X-Git-Tag: 1.5.0~270 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55e51977a231b715c3317dbbbf042ccc7310d63d;p=thirdparty%2Frspamd.git [Minor] Save symbols cache on reload --- diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index b2a3635008..5fa5be37e3 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -826,14 +826,9 @@ rspamd_symbols_cache_add_condition_delayed (struct symbols_cache *cache, return TRUE; } - void -rspamd_symbols_cache_destroy (struct symbols_cache *cache) +rspamd_symbols_cache_save (struct symbols_cache *cache) { - GList *cur; - struct delayed_cache_dependency *ddep; - struct delayed_cache_condition *dcond; - if (cache != NULL) { if (cache->cfg->cache_filename) { @@ -844,6 +839,18 @@ rspamd_symbols_cache_destroy (struct symbols_cache *cache) cache->cfg->cache_filename); } } + } +} + +void +rspamd_symbols_cache_destroy (struct symbols_cache *cache) +{ + GList *cur; + struct delayed_cache_dependency *ddep; + struct delayed_cache_condition *dcond; + + if (cache != NULL) { + rspamd_symbols_cache_save (cache); if (cache->delayed_deps) { cur = cache->delayed_deps; diff --git a/src/libserver/symbols_cache.h b/src/libserver/symbols_cache.h index 6be4de01c2..f6015c2ef7 100644 --- a/src/libserver/symbols_cache.h +++ b/src/libserver/symbols_cache.h @@ -61,6 +61,12 @@ struct symbols_cache* rspamd_symbols_cache_new (struct rspamd_config *cfg); */ void rspamd_symbols_cache_destroy (struct symbols_cache *cache); +/** + * Saves symbols cache to disk if possible + * @param cache + */ +void rspamd_symbols_cache_save (struct symbols_cache *cache); + /** * Load symbols cache from file, must be called _after_ init_symbols_cache */ diff --git a/src/rspamd.c b/src/rspamd.c index c00faa056c..a7933ff7c4 100644 --- a/src/rspamd.c +++ b/src/rspamd.c @@ -273,6 +273,7 @@ reread_config (struct rspamd_main *rspamd_main) struct rspamd_config *tmp_cfg, *old_cfg; gchar *cfg_file; + rspamd_symbols_cache_save (rspamd_main->cfg->cache); tmp_cfg = rspamd_config_new (); g_hash_table_unref (tmp_cfg->c_modules); tmp_cfg->c_modules = g_hash_table_ref (rspamd_main->cfg->c_modules);