]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Cloudmark scores_symbols: convert keys to numeric values 4924/head
authorAndrew Lewis <nerf@judo.za.org>
Fri, 12 Apr 2024 20:50:12 +0000 (22:50 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Fri, 12 Apr 2024 20:50:12 +0000 (22:50 +0200)
lualib/lua_scanners/cloudmark.lua

index 3768668bb77f2dba42d3666d5fdd036f3a1ba241..cb55a3bbfbacf10e3589cbc35b62c6ef1e870ace 100644 (file)
@@ -89,6 +89,20 @@ local function cloudmark_preload(rule, cfg, ev_base, _)
   })
 end
 
+local function numerify(d)
+  local l = {}
+  for k in pairs(d) do
+    table.insert(l, k)
+  end
+  for _, k in ipairs(l) do
+    local new_key = tonumber(k)
+    if new_key then
+      d[new_key] = d[k]
+      d[k] = nil
+    end
+  end
+end
+
 local function cloudmark_config(opts)
 
   local cloudmark_conf = {
@@ -116,6 +130,10 @@ local function cloudmark_config(opts)
 
   cloudmark_conf = lua_util.override_defaults(cloudmark_conf, opts)
 
+  if type(cloudmark_conf.scores_symbols) == 'table' then
+    numerify(cloudmark_conf.scores_symbols)
+  end
+
   if not cloudmark_conf.prefix then
     cloudmark_conf.prefix = 'rs_' .. cloudmark_conf.name .. '_'
   end