commit 1e84018: [Minor] Move config stuff out

Vsevolod Stakhov vsevolod at rspamd.com
Mon Aug 7 12:35:03 UTC 2023


Author: Vsevolod Stakhov
Date: 2023-08-07 12:42:09 +0100
URL: https://github.com/rspamd/rspamd/commit/1e84018e2a508ae6c62baf39c2046699ef5b5a52

[Minor] Move config stuff out

---
 lualib/lua_cfg_utils.lua       | 67 ++++++++++++++++++++++++++++++++++++++++++
 lualib/lua_util.lua            | 50 +++----------------------------
 src/plugins/lua/antivirus.lua  |  2 +-
 src/plugins/lua/bimi.lua       |  2 +-
 src/plugins/lua/reputation.lua |  4 +--
 5 files changed, 75 insertions(+), 50 deletions(-)

diff --git a/lualib/lua_cfg_utils.lua b/lualib/lua_cfg_utils.lua
new file mode 100644
index 000000000..141b497bc
--- /dev/null
+++ b/lualib/lua_cfg_utils.lua
@@ -0,0 +1,67 @@
+--[[
+Copyright (c) 2023, Vsevolod Stakhov <vsevolod at rspamd.com>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+]]--
+
+--[[[
+-- @module lua_cfg_utils
+-- This module contains utility functions for configuration of Rspamd modules
+--]]
+
+local exports = {}
+
+--[[[
+-- @function lua_util.disable_module(modname, how[, reason])
+-- Disables a plugin
+-- @param {string} modname name of plugin to disable
+-- @param {string} how 'redis' to disable redis, 'config' to disable startup
+-- @param {string} reason optional reason for failure
+--]]
+exports.disable_module = function(modname, how, reason)
+  if rspamd_plugins_state.enabled[modname] then
+    rspamd_plugins_state.enabled[modname] = nil
+  end
+
+  if how == 'redis' then
+    rspamd_plugins_state.disabled_redis[modname] = {}
+  elseif how == 'config' then
+    rspamd_plugins_state.disabled_unconfigured[modname] = {}
+  elseif how == 'experimental' then
+    rspamd_plugins_state.disabled_experimental[modname] = {}
+  elseif how == 'failed' then
+    rspamd_plugins_state.disabled_failed[modname] = { reason = reason }
+  else
+    rspamd_plugins_state.disabled_unknown[modname] = {}
+  end
+end
+
+--[[[
+-- @function lua_util.push_config_error(module, err)
+-- Pushes a configuration error to the state
+-- @param {string} module name of module
+-- @param {string} err error string
+--]]
+exports.push_config_error = function(module, err)
+  if not rspamd_plugins_state.config_errors then
+    rspamd_plugins_state.config_errors = {}
+  end
+
+  if not rspamd_plugins_state.config_errors[module] then
+    rspamd_plugins_state.config_errors[module] = {}
+  end
+
+  table.insert(rspamd_plugins_state.config_errors[module], err)
+end
+
+return exports
\ No newline at end of file
diff --git a/lualib/lua_util.lua b/lualib/lua_util.lua
index 800d9fcb7..a68da0d59 100644
--- a/lualib/lua_util.lua
+++ b/lualib/lua_util.lua
@@ -380,52 +380,10 @@ end
 
 exports.spairs = spairs
 
---[[[
--- @function lua_util.disable_module(modname, how[, reason])
--- Disables a plugin
--- @param {string} modname name of plugin to disable
--- @param {string} how 'redis' to disable redis, 'config' to disable startup
--- @param {string} reason optional reason for failure
---]]
-local function disable_module(modname, how, reason)
-  if rspamd_plugins_state.enabled[modname] then
-    rspamd_plugins_state.enabled[modname] = nil
-  end
-
-  if how == 'redis' then
-    rspamd_plugins_state.disabled_redis[modname] = {}
-  elseif how == 'config' then
-    rspamd_plugins_state.disabled_unconfigured[modname] = {}
-  elseif how == 'experimental' then
-    rspamd_plugins_state.disabled_experimental[modname] = {}
-  elseif how == 'failed' then
-    rspamd_plugins_state.disabled_failed[modname] = { reason = reason }
-  else
-    rspamd_plugins_state.disabled_unknown[modname] = {}
-  end
-end
-
-exports.disable_module = disable_module
-
---[[[
--- @function lua_util.push_config_error(module, err)
--- Pushes a configuration error to the state
--- @param {string} module name of module
--- @param {string} err error string
---]]
-local function push_config_error(module, err)
-  if not rspamd_plugins_state.config_errors then
-    rspamd_plugins_state.config_errors = {}
-  end
-
-  if not rspamd_plugins_state.config_errors[module] then
-    rspamd_plugins_state.config_errors[module] = {}
-  end
-
-  table.insert(rspamd_plugins_state.config_errors[module], err)
-end
+local lua_cfg_utils = require "lua_cfg_utils"
 
-exports.push_config_error = push_config_error
+exports.config_utils = lua_cfg_utils
+exports.disable_module = lua_cfg_utils.disable_module
 
 --[[[
 -- @function lua_util.disable_module(modname)
@@ -437,7 +395,7 @@ local function check_experimental(modname)
   if rspamd_config:experimental_enabled() then
     return true
   else
-    disable_module(modname, 'experimental')
+    lua_cfg_utils.disable_module(modname, 'experimental')
   end
 
   return false
diff --git a/src/plugins/lua/antivirus.lua b/src/plugins/lua/antivirus.lua
index 44fe10e98..e39ddc5ba 100644
--- a/src/plugins/lua/antivirus.lua
+++ b/src/plugins/lua/antivirus.lua
@@ -204,7 +204,7 @@ if opts and type(opts) == 'table' then
 
       if not cb then
         rspamd_logger.errx(rspamd_config, 'cannot add rule: "' .. k .. '"')
-        lua_util.push_config_error(N, 'cannot add AV rule: "' .. k .. '"')
+        lua_util.config_utils.push_config_error(N, 'cannot add AV rule: "' .. k .. '"')
       else
         rspamd_logger.infox(rspamd_config, 'added antivirus engine %s -> %s', k, m.symbol)
         local t = {
diff --git a/src/plugins/lua/bimi.lua b/src/plugins/lua/bimi.lua
index 5959f59e7..5dbb83623 100644
--- a/src/plugins/lua/bimi.lua
+++ b/src/plugins/lua/bimi.lua
@@ -354,7 +354,7 @@ local res, err = settings_schema:transform(settings)
 if not res then
   rspamd_logger.warnx(rspamd_config, 'plugin is misconfigured: %s', err)
   local err_msg = string.format("schema error: %s", res)
-  lua_util.push_config_error(N, err_msg)
+  lua_util.config_utils.push_config_error(N, err_msg)
   lua_util.disable_module(N, "failed", err_msg)
   return
 end
diff --git a/src/plugins/lua/reputation.lua b/src/plugins/lua/reputation.lua
index d569e9070..fc7001eb1 100644
--- a/src/plugins/lua/reputation.lua
+++ b/src/plugins/lua/reputation.lua
@@ -1377,10 +1377,10 @@ if opts['rules'] then
   for k, v in pairs(opts['rules']) do
     if not ((v or E).selector) then
       rspamd_logger.errx(rspamd_config, "no selector defined for rule %s", k)
-      lua_util.push_config_error(N, "no selector defined for rule: " .. k)
+      lua_util.config_utils.push_config_error(N, "no selector defined for rule: " .. k)
     else
       if not parse_rule(k, v) then
-        lua_util.push_config_error(N, "reputation rule is misconfigured: " .. k)
+        lua_util.config_utils.push_config_error(N, "reputation rule is misconfigured: " .. k)
       end
     end
   end


More information about the Commits mailing list