summaryrefslogtreecommitdiffstats
path: root/src/libserver/symbols_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libserver/symbols_cache.c')
-rw-r--r--src/libserver/symbols_cache.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c
index 69a1f7158..56b9f86de 100644
--- a/src/libserver/symbols_cache.c
+++ b/src/libserver/symbols_cache.c
@@ -1582,6 +1582,7 @@ rspamd_symbols_cache_process_settings (struct rspamd_task *task,
struct rspamd_symbols_group *gr;
GHashTableIter gr_it;
ucl_object_iter_t it = NULL;
+ gboolean already_disabled = FALSE;
gpointer k, v;
wl = ucl_object_lookup (task->settings, "whitelist");
@@ -1597,6 +1598,7 @@ rspamd_symbols_cache_process_settings (struct rspamd_task *task,
if (enabled) {
/* Disable all symbols but selected */
rspamd_symbols_cache_disable_all_symbols (task, cache);
+ already_disabled = TRUE;
it = NULL;
while ((cur = ucl_iterate_object (enabled, &it, true)) != NULL) {
@@ -1610,7 +1612,10 @@ rspamd_symbols_cache_process_settings (struct rspamd_task *task,
if (enabled) {
it = NULL;
- rspamd_symbols_cache_disable_all_symbols (task, cache);
+
+ if (!already_disabled) {
+ rspamd_symbols_cache_disable_all_symbols (task, cache);
+ }
while ((cur = ucl_iterate_object (enabled, &it, true)) != NULL) {
if (ucl_object_type (cur) == UCL_STRING) {