aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver/cfg_rcl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libserver/cfg_rcl.c')
-rw-r--r--src/libserver/cfg_rcl.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c
index 9ea80a49c..9a2d7cd19 100644
--- a/src/libserver/cfg_rcl.c
+++ b/src/libserver/cfg_rcl.c
@@ -584,6 +584,21 @@ rspamd_rcl_actions_handler (rspamd_mempool_t *pool, const ucl_object_t *obj,
ucl_object_get_priority (cur));
}
else if (type == UCL_OBJECT || type == UCL_FLOAT || type == UCL_INT) {
+ /* Exceptions */
+ struct rspamd_rcl_default_handler_data *sec_cur, *sec_tmp;
+ gboolean default_elt = FALSE;
+
+ HASH_ITER (hh, section->default_parser, sec_cur, sec_tmp) {
+ if (strcmp (ucl_object_key (cur), sec_cur->key) == 0) {
+ default_elt = TRUE;
+ }
+ }
+
+ if (default_elt) {
+ continue;
+ }
+
+ /* Something non-default */
if (!rspamd_config_set_action_score (cfg,
ucl_object_key (cur),
cur)) {