aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/lua/rbl.lua20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index 026432404..09ac69c94 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -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