]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Rbl: Add whitelisting indication to the symbol's options
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 17 Apr 2020 09:16:50 +0000 (10:16 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 17 Apr 2020 09:26:02 +0000 (10:26 +0100)
src/plugins/lua/rbl.lua

index 026432404894fc2e5f59506bf8b459648b270159..09ac69c9423ff30d19fe0fab42651d558c237512 100644 (file)
@@ -296,12 +296,17 @@ local function gen_rbl_callback(rule)
 
     -- Maybe whitelisted by some other rbl rule
     if whitelist then
-      local wl_what = whitelist[req_str]
-      if wl_what then
+      local wl = whitelist[req_str]
+      if wl then
         lua_util.debugm(N, task,
-            'whitelisted %s on %s by %s rbl rule (%s checked)',
-            req_str, wl_what, what)
-        return wl_what == what
+            'whitelisted %s on %s by %s (%s) rbl rule (%s checked)',
+            req_str, wl.type, wl.symbol, what)
+        if wl.type == what then
+          -- Add symbol option (0.0 / 0.0 is used to denounce NAN that prevents score modification)
+          task:adjust_result(wl.symbol, 0.0 / 0.0, rule.symbol)
+
+          return true
+        end
       end
     end
 
@@ -1191,7 +1196,10 @@ local function rbl_callback_white(task)
         lua_util.debugm(N, task,'found whitelist from %s: %s(%s)', w,
             elt, what)
         if elt and what then
-          whitelisted_elements[elt] = what
+          whitelisted_elements[elt] = {
+            type = what,
+            symbol = w,
+          }
         end
       end
     end