From: Vsevolod Stakhov Date: Sun, 23 Sep 2018 14:21:49 +0000 (+0100) Subject: [Minor] Fix selectors usage in multimap X-Git-Tag: 1.8.0~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6701c19298f3bc9c74caf0686f8ecba6ca748336;p=thirdparty%2Frspamd.git [Minor] Fix selectors usage in multimap --- diff --git a/src/plugins/lua/multimap.lua b/src/plugins/lua/multimap.lua index d358382c26..6a4e0f2c4c 100644 --- a/src/plugins/lua/multimap.lua +++ b/src/plugins/lua/multimap.lua @@ -848,12 +848,18 @@ local function multimap_callback(task, rule) end end, selector = function() - local elts = lua_selectors.process_selectors(task, rule.selector) or {} - for _,elt in ipairs(elts) do - match_rule(rule, elt) + local elts = rule.selector(task) + + if type(elts) == 'table' then + for _,elt in ipairs(elts) do + match_rule(rule, elt) + end + else + match_rule(rule, elts) end end, } + process_rule_funcs.ip = process_rule_funcs.dnsbl local f = process_rule_funcs[rt] if f then @@ -939,7 +945,8 @@ local function add_multimap_rule(key, newrule) rspamd_logger.errx(rspamd_config, 'selector map requires selector definition') return nil else - local selector = lua_selectors.parse_selector(rspamd_config, newrule['selector']) + local selector = lua_selectors.create_selector_closure( + rspamd_config, newrule['selector'], newrule['delimiter'] or "") if not selector then rspamd_logger.errx(rspamd_config, 'selector map has invalid selector: "%s", symbol: %s',