diff options
author | Vsevolod Stakhov <vsevolod@rspamd.com> | 2023-08-07 12:42:09 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rspamd.com> | 2023-08-07 12:42:09 +0100 |
commit | 1e84018e2a508ae6c62baf39c2046699ef5b5a52 (patch) | |
tree | 5d860de785fdc4604c0ba3727f7f5eef6b902550 /lualib/lua_cfg_utils.lua | |
parent | 416ba555dd278fa771ca862e174b578ad4bba958 (diff) | |
download | rspamd-1e84018e2a508ae6c62baf39c2046699ef5b5a52.tar.gz rspamd-1e84018e2a508ae6c62baf39c2046699ef5b5a52.zip |
[Minor] Move config stuff out
Diffstat (limited to 'lualib/lua_cfg_utils.lua')
-rw-r--r-- | lualib/lua_cfg_utils.lua | 67 |
1 files changed, 67 insertions, 0 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@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 |