commit 1a673e2: [Minor] Reputation: Another try to fix split_symbols

Vsevolod Stakhov vsevolod at rspamd.com
Wed May 18 19:49:04 UTC 2022


Author: Vsevolod Stakhov
Date: 2022-05-18 20:43:44 +0100
URL: https://github.com/rspamd/rspamd/commit/1a673e2fbe24882365ad15636283e19a404623d1 (HEAD -> master)

[Minor] Reputation: Another try to fix split_symbols

---
 src/plugins/lua/reputation.lua | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/plugins/lua/reputation.lua b/src/plugins/lua/reputation.lua
index b41f66f51..dd1cfd913 100644
--- a/src/plugins/lua/reputation.lua
+++ b/src/plugins/lua/reputation.lua
@@ -70,16 +70,29 @@ local function generic_reputation_calc(token, rule, mult, task)
 end
 
 local function add_symbol_score(task, rule, mult, params)
-  if not params then params = {tostring(mult)};
-
+  if not params then
+    params = {tostring(mult)}
   end
+
   if rule.selector.config.split_symbols then
+    local sym_spam = rule.symbol .. '_SPAM'
+    local sym_ham = rule.symbol .. '_HAM'
+    if not rule.static_symbols then
+      rule.static_symbols = {}
+      rule.static_symbols.ham = rspamd_config:get_symbol(sym_ham)
+      rule.static_symbols.spam = rspamd_config:get_symbol(sym_spam)
+    end
     if mult >= 0 then
-      task:insert_result(rule.symbol .. '_SPAM', mult, params)
+      task:insert_result(sym_spam, mult, params)
     else
-      -- We assume that `HAM` symbol has negative score...
-      -- It is probably good to verify on config stage (TODO)
-      task:insert_result(rule.symbol .. '_HAM', math.abs(mult), params)
+      -- Avoid multiplication of negative the `mult` by negative static score of the
+      -- ham symbol
+      if rule.static_symbols.ham and rule.static_symbols.ham.score then
+        if rule.static_symbols.ham.score < 0 then
+          mult = math.abs(mult)
+        end
+      end
+      task:insert_result(sym_ham, mult, params)
     end
   else
     task:insert_result(rule.symbol, mult, params)


More information about the Commits mailing list