commit 16d3c5a: [Minor] Rbl: Fix registration logic

Vsevolod Stakhov vsevolod at highsecure.ru
Tue Sep 24 11:28:11 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-09-24 12:12:55 +0100
URL: https://github.com/rspamd/rspamd/commit/16d3c5a33e092bd010c027c4854d25ea9fa6375f

[Minor] Rbl: Fix registration logic

---
 src/plugins/lua/rbl.lua | 64 ++++++++++++++++++++++++-------------------------
 1 file changed, 32 insertions(+), 32 deletions(-)

diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index ab4512545..5c007b6c3 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -912,47 +912,47 @@ local function add_rbl(key, rbl, global_opts)
       score = 0.0,
     }
 
-    local function process_return_code(s)
-      if s ~= rbl.symbol then
-        -- hack
-        if rbl.symbols_prefixes then
-          for _,prefix in pairs(rbl.symbols_prefixes) do
-            rspamd_config:register_symbol{
-              type = 'virtual',
-              parent = id,
-              name = prefix .. '_' .. s,
-            }
-          end
-        else
-          rspamd_config:register_symbol({
-            name = s,
+    local function process_return_code(suffix)
+      local function process_specific_suffix(s)
+        if s ~= rbl.symbol then
+          -- hack
+
+          rspamd_config:register_symbol{
+            type = 'virtual',
             parent = id,
-            type = 'virtual'
-          })
+            name = s,
+          }
         end
-
-      end
-
-      if rbl.is_whitelist then
-        if rbl.whitelist_exception then
-          local found_exception = false
-          for _, e in ipairs(rbl.whitelist_exception) do
-            if e == s then
-              found_exception = true
-              break
+        if rbl.is_whitelist then
+          if rbl.whitelist_exception then
+            local found_exception = false
+            for _, e in ipairs(rbl.whitelist_exception) do
+              if e == s then
+                found_exception = true
+                break
+              end
             end
-          end
-          if not found_exception then
+            if not found_exception then
+              table.insert(white_symbols, s)
+            end
+          else
             table.insert(white_symbols, s)
           end
         else
-          table.insert(white_symbols, s)
+          if rbl.ignore_whitelist == false then
+            table.insert(black_symbols, s)
+          end
         end
-      else
-        if rbl.ignore_whitelist == false then
-          table.insert(black_symbols, s)
+      end
+
+      if rbl.symbols_prefixes then
+        for _,prefix in pairs(rbl.symbols_prefixes) do
+          process_specific_suffix(prefix .. '_' .. suffix)
         end
+      else
+        process_specific_suffix(suffix)
       end
+
     end
 
     if rbl.returncodes then


More information about the Commits mailing list