From: Vsevolod Stakhov Date: Wed, 29 Jan 2014 14:08:14 +0000 (+0000) Subject: Fix overrides for a metric. X-Git-Tag: 0.7.0~439 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c6af76b620742ac7c9075c4d1226895aa49842f8;p=rspamd.git Fix overrides for a metric. Fixes #33 --- diff --git a/src/cfg_rcl.c b/src/cfg_rcl.c index 0301d475f..aedee7ea3 100644 --- a/src/cfg_rcl.c +++ b/src/cfg_rcl.c @@ -365,7 +365,7 @@ rspamd_rcl_metric_handler (struct config_file *cfg, ucl_object_t *obj, } } } - if (!have_actions) { + if (new && !have_actions) { g_set_error (err, CFG_RCL_ERROR, EINVAL, "metric %s has no actions", metric_name); return FALSE; } @@ -405,7 +405,7 @@ rspamd_rcl_metric_handler (struct config_file *cfg, ucl_object_t *obj, } } } - else { + else if (new) { g_set_error (err, CFG_RCL_ERROR, EINVAL, "metric %s has no symbols", metric_name); return FALSE; } @@ -422,8 +422,10 @@ rspamd_rcl_metric_handler (struct config_file *cfg, ucl_object_t *obj, } /* Insert the resulting metric */ - g_hash_table_insert (cfg->metrics, (void *)metric->name, metric); - cfg->metrics_list = g_list_prepend (cfg->metrics_list, metric); + if (new) { + g_hash_table_insert (cfg->metrics, (void *)metric->name, metric); + cfg->metrics_list = g_list_prepend (cfg->metrics_list, metric); + } return TRUE; }