]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Merge new groups definitions
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 15 Nov 2017 20:20:41 +0000 (20:20 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 15 Nov 2017 20:32:08 +0000 (20:32 +0000)
lualib/rspamd_config_transform.lua

index 32ac2dcb67986724b7d6754344d654d27b571fe7..f1eb2a6ac3798cdbe0fbfa1d3b64435f4be94c74 100644 (file)
@@ -212,6 +212,23 @@ local function convert_metric(cfg, metric)
   return cfg
 end
 
+-- Converts a table of groups indexed by number (implicit array) to a
+-- merged group definition
+local function merge_groups(groups)
+  local ret = {}
+  for k,gr in pairs(groups) do
+    if type(k) == 'number' then
+      for key,sec in pairs(gr) do
+        ret[key] = sec
+      end
+    else
+      ret[k] = gr
+    end
+  end
+
+  return ret
+end
+
 return function(cfg)
   local ret = false
 
@@ -229,6 +246,11 @@ return function(cfg)
   if not cfg.group then
     logger.errx('no symbol groups defined')
   else
+    if cfg.group[1] then
+      -- We need to merge groups
+      cfg.group = merge_groups(cfg.group)
+      ret = true
+    end
     test_groups(cfg.group)
   end