From: Andrew Lewis Date: Mon, 22 Aug 2016 10:24:15 +0000 (+0200) Subject: [Minor] Fix registration of prefilters in multimap (#878) X-Git-Tag: 1.3.4~8^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1c1306b1ea02106d7a6eb3e11009e595911a25b3;p=rspamd.git [Minor] Fix registration of prefilters in multimap (#878) --- diff --git a/src/plugins/lua/multimap.lua b/src/plugins/lua/multimap.lua index 10e727ef7..f21bc5b11 100644 --- a/src/plugins/lua/multimap.lua +++ b/src/plugins/lua/multimap.lua @@ -786,44 +786,43 @@ if opts and type(opts) == 'table' then end end -- add fake symbol to check all maps inside a single callback - if any(function(r) return not r['prefilter'] end, rules) then - for i,rule in ipairs(rules) do - local id = rspamd_config:register_symbol({ - type = 'normal', - name = rule['symbol'], - callback = gen_multimap_callback(rule), - }) - if rule['symbols'] then - -- Find allowed symbols by this map - rule['symbols_set'] = {} - each(function(s) - rspamd_config:register_symbol({ - type = 'virtual', - name = s, - parent = id - }) - rule['symbols_set'][s] = 1 - end, rule['symbols']) - end - if rule['score'] then - -- Register metric symbol - local description = 'multimap symbol' - local group = 'multimap' - if rule['description'] then - description = rule['description'] - end - if rule['group'] then - group = rule['group'] - end - rspamd_config:set_metric_symbol({ - name = rule['symbol'], - score = rule['score'], - description = description, - group = group + each(function(rule) + local id = rspamd_config:register_symbol({ + type = 'normal', + name = rule['symbol'], + callback = gen_multimap_callback(rule), + }) + if rule['symbols'] then + -- Find allowed symbols by this map + rule['symbols_set'] = {} + each(function(s) + rspamd_config:register_symbol({ + type = 'virtual', + name = s, + parent = id }) - end + rule['symbols_set'][s] = 1 + end, rule['symbols']) + end + if rule['score'] then + -- Register metric symbol + local description = 'multimap symbol' + local group = 'multimap' + if rule['description'] then + description = rule['description'] + end + if rule['group'] then + group = rule['group'] + end + rspamd_config:set_metric_symbol({ + name = rule['symbol'], + score = rule['score'], + description = description, + group = group + }) end - end + end, + filter(function(r) return not r['prefilter'] end, rules)) each(function(r) rspamd_config:register_symbol({