aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lua/multimap.lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2020-10-14 15:32:37 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2020-10-14 15:32:37 +0100
commit8f7a43d5a44ffe9e8ba5343406ef3682bf57fe86 (patch)
treea14305a3d06ddaefb5c8b40a612b28321337b24c /src/plugins/lua/multimap.lua
parentc0d8b18d5bdb954e74646ced8e336d768a0c7c31 (diff)
downloadrspamd-8f7a43d5a44ffe9e8ba5343406ef3682bf57fe86.tar.gz
rspamd-8f7a43d5a44ffe9e8ba5343406ef3682bf57fe86.zip
[Fix] Multimap: Fix scoring for combined maps
Diffstat (limited to 'src/plugins/lua/multimap.lua')
-rw-r--r--src/plugins/lua/multimap.lua8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/plugins/lua/multimap.lua b/src/plugins/lua/multimap.lua
index 1ef2dbe12..c253c660e 100644
--- a/src/plugins/lua/multimap.lua
+++ b/src/plugins/lua/multimap.lua
@@ -544,7 +544,7 @@ local function multimap_callback(task, rule)
return true,nil,1.0
end
elseif type(p_ret) == 'boolean' then
- return p_ret,nil,0.0
+ return p_ret,nil,1.0
end
return false,nil,0.0
@@ -1270,12 +1270,16 @@ if opts and type(opts) == 'table' then
rspamd_logger.infox(rspamd_config, 'set default score 0 for multimap rule %s', rule.symbol)
rule.score = 0
end
- if rule['score'] then
+ if rule.score then
-- Register metric symbol
rule.name = rule.symbol
rule.description = rule.description or 'multimap symbol'
rule.group = rule.group or N
+ -- XXX: for combined maps we use trace, so flags must include one_shot to avoid scores multiplication
+ if rule.combined and not rule.flags then
+ rule.flags = 'one_shot'
+ end
rspamd_config:set_metric_symbol(rule)
end
end, fun.filter(function(r) return not r['prefilter'] end, rules))