'rspamd_str_split',
'rspamd_version',
'rspamd_map_add',
- 'rspamd_maps'
+ 'rspamd_maps',
+ 'rspamd_plugins_state',
+ 'rspamadm',
}
ignore = {
local rspamd_logger = require "rspamd_logger"
local lua_util = require "lua_util"
-local function is_implicit(t)
- local mt = getmetatable(t)
-
- return mt and mt.class and mt.class == 'ucl.type.impl_array'
-end
-
local function printf(fmt, ...)
print(string.format(fmt, ...))
end
local rspamd_regexp = require "rspamd_regexp"
local tcp = require "rspamd_tcp"
local upstream_list = require "rspamd_upstream_list"
+local lua_util = require "lua_util"
local redis_params
local N = "antivirus"
local opts = rspamd_config:get_all_opt('antivirus')
if opts and type(opts) == 'table' then
redis_params = rspamd_parse_redis_server('antivirus')
+ local has_valid = false
for k, m in pairs(opts) do
if type(m) == 'table' and m['type'] and m['servers'] then
local cb = add_antivirus_rule(k, m)
name = m['symbol'],
callback = cb,
})
+ has_valid = true
if type(m['patterns']) == 'table' then
if m['patterns'][1] then
for _, p in ipairs(m['patterns']) do
end
end
end
+
+ if not has_valid then
+ lua_util.disable_module(N, 'config')
+ end
end
+
if not (settings.use_redis or settings.path or
settings.domain or settings.path_map or settings.selector_map) then
rspamd_logger.infox(rspamd_config, 'mandatory parameters missing, disable arc signing')
+ lua_util.disable_module(N, "fail")
return
end
redis_params = rspamd_parse_redis_server('arc')
if not redis_params then
- rspamd_logger.errx(rspamd_config, 'no servers are specified, but module is configured to load keys from redis, disable dkim signing')
+ rspamd_logger.errx(rspamd_config, 'no servers are specified, but module is configured to load keys from redis, disable arc signing')
+ lua_util.disable_module(N, "config")
return
end
end
local rspamd_logger = require "rspamd_logger"
local rspamd_regexp = require "rspamd_regexp"
+local lua_util = require "lua_util"
+local N = "asn"
if confighelp then
return
type = 'virtual'
})
end
+else
+ lua_util.disable_module(N, 'config')
end
return true
end
-if not configure_bayes_expiry() then return end
+if not configure_bayes_expiry() then
+ lutil.disable_module(N, 'config')
+ return
+end
local function get_redis_params(ev_base, symbol)
local redis_params
local rspamd_http = require "rspamd_http"
local rspamd_lua_utils = require "lua_util"
local upstream_list = require "rspamd_upstream_list"
+local N = "clickhouse"
if confighelp then
return
if not settings['server'] and not settings['servers'] then
rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
+ rspamd_lua_utils.disable_module(N, "config")
else
settings['from_map'] = rspamd_map_add('clickhouse', 'from_tables',
'regexp', 'clickhouse specific domains')
if not settings.upstream then
rspamd_logger.errx('cannot parse clickhouse address: %s',
settings['server'] or settings['servers'])
+ rspamd_lua_utils.disable_module(N, "config")
return
end
local logger = require "rspamd_logger"
local tcp = require "rspamd_tcp"
local fun = require "fun"
+local lua_util = require "lua_util"
if confighelp then
rspamd_config:add_example(nil, 'dcc',
name = symbol_bulk
})
else
+ lua_util.disable_module(N, "config")
logger.infox('DCC module not configured');
end
end
if not (settings.use_redis or settings.path or settings.domain or settings.path_map or settings.selector_map) then
rspamd_logger.infox(rspamd_config, 'mandatory parameters missing, disable dkim signing')
+ lutil.disable_module(N, "config")
return
end
if settings.use_redis then
if not redis_params then
rspamd_logger.errx(rspamd_config, 'no servers are specified, but module is configured to load keys from redis, disable dkim signing')
+ lutil.disable_module(N, "redis")
return
end
end
local redis_params
local ucl = require "ucl"
local fun = require "fun"
+local lua_util = require "lua_util"
+local N = "dynamic_conf"
if confighelp then
return
add_symbol = add_dynamic_symbol,
add_action = add_dynamic_action,
}
+ lua_util.disable_module(N, "redis")
end
callback = cb,
})
end
+else
+ rspamd_lua_utils.disable_module(N, "conf")
end
local rspamd_fann = require "rspamd_fann"
local rspamd_util = require "rspamd_util"
local rspamd_redis = require "lua_redis"
+local lua_util = require "lua_util"
local fun = require "fun"
local meta_functions = require "meta_functions"
local use_torch = false
local torch
local nn
+local N = "fann_redis"
if rspamd_config:has_torch() then
use_torch = true
-- Initialization part
if not (opts and type(opts) == 'table') or not redis_params then
rspamd_logger.infox(rspamd_config, 'Module is unconfigured')
+ lua_util.disable_module(N, "redis")
return
end
if not rspamd_fann.is_enabled() then
rspamd_logger.errx(rspamd_config, 'fann is not compiled in rspamd, this ' ..
'module is eventually disabled')
+ lua_util.disable_module(N, "fail")
return
else
local rules = opts['rules']
local fun = require "fun"
local hash = require "rspamd_cryptobox_hash"
local rspamd_lua_utils = require "lua_util"
+local N = "greylist"
local function data_key(task)
local cached = task:get_mempool():get_variable("grey_bodyhash")
redis_params = rspamd_parse_redis_server('greylist')
if not redis_params then
rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
+ rspamd_lua_utils.disable_module(N, "redis")
else
rspamd_config:register_symbol({
name = 'GREYLIST_SAVE',
local rspamd_logger = require "rspamd_logger"
local rspamd_regexp = require "rspamd_regexp"
+local lua_util = require "lua_util"
local rspamc_local_helo = "rspamc.local"
local checks_hellohost = [[
/[0-9][.-]?nat/i 5
--dumper(symbols_enabled)
if #symbols_enabled > 0 then
rspamd_config:register_symbols(hfilter, 1.0, "HFILTER", symbols_enabled);
+else
+ lua_util.disable_module(N, "config")
end
local rspamd_logger = require "rspamd_logger"
local rspamd_util = require "rspamd_util"
+local lua_util = require "lua_util"
local fun = require "fun"
local ucl = require("ucl")
local E = {}
+local N = "history_redis"
local hostname = rspamd_util.get_hostname()
local function process_addr(addr)
redis_params = rspamd_parse_redis_server('history_redis')
if not redis_params then
rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
+ lua_util.disable_module(N, "redis")
else
rspamd_config:register_symbol({
name = 'HISTORY_SAVE',
local check_authed = false
local check_local = false
local M = "ip_score"
+local N = M
local options = {
actions = { -- how each action is treated in scoring
name = options['symbol'],
callback = ip_score_check,
})
+else
+ rspamd_lua_utils.disable_module(N, "redis")
end
if not next(settings.rules) then
rspamd_logger.errx(rspamd_config, 'No rules enabled')
+ lutil.disable_module(N, "config")
end
for k, r in pairs(settings.rules) do
rspamd_config:register_symbol({
local mempool = require "rspamd_mempool"
local util = require "rspamd_util"
local tcp = require "rspamd_tcp"
+local lua_util = require "lua_util"
local pool = mempool.create()
local settings = {
return backends[be]['configure']()
end
-if not configure_metric_exporter() then return end
+if not configure_metric_exporter() then
+ lua_util.disable_module(N, "config")
+ return
+end
rspamd_config:add_on_load(function (_, ev_base, worker)
-- Exit unless we're the first 'controller' worker
local rspamd_logger = require "rspamd_logger"
local rspamd_regexp = require "rspamd_regexp"
+local lua_util = require "lua_util"
+local N = "mid"
local settings = {
url = '',
rspamd_config:register_dependency(id, settings['symbol_dkim_allow'])
else
rspamd_logger.infox(rspamd_config, 'source is not specified, disabling module')
+ lua_util.disable_module(N, "config")
end
end
-- This plugin implements mime types checks for mail messages
local logger = require "rspamd_logger"
+local lua_util = require "lua_util"
+local N = "mime_types"
local settings = {
file = '',
symbol_unknown = 'MIME_UNKNOWN',
name = settings['symbol_bad_extension'],
parent = id
})
+ else
+ lua_util.disable_module(N, "config")
end
end
local regexp = require "rspamd_regexp"
local rspamd_expression = require "rspamd_expression"
local rspamd_ip = require "rspamd_ip"
+local lua_util = require "lua_util"
local redis_params
local fun = require "fun"
local N = 'multimap'
})
end,
fun.filter(function(r) return r['prefilter'] end, rules))
+
+ if #rules == 0 then
+ lua_util.disable_module(N, "config")
+ end
end
local rspamd_logger = require "rspamd_logger"
local rspamd_tcp = require "rspamd_tcp"
local rspamd_util = require "rspamd_util"
+local lua_util = require "lua_util"
+local N = "mx_check"
local fun = require "fun"
local settings = {
redis_params = rspamd_parse_redis_server('mx_check')
if not redis_params then
rspamd_logger.errx(rspamd_config, 'no redis servers are specified, disabling module')
+ lua_util.disable_module(N, "redis")
return
end
for k,v in pairs(opts) do
redis_params = rspamd_parse_redis_server('ratelimit')
if not redis_params then
rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
+ lua_util.disable_module(N, "redis")
else
local s = {
type = 'prefilter,nostat',
local rspamd_logger = require 'rspamd_logger'
local rspamd_util = require 'rspamd_util'
local fun = require 'fun'
+local lua_util = require 'lua_util'
local default_monitored = '1.0.0.127'
local symbols = {
local opts = rspamd_config:get_all_opt(N)
if not (opts and type(opts) == 'table') then
rspamd_logger.infox(rspamd_config, 'Module is unconfigured')
+ lua_util.disable_module(N, "config")
return
end
end
end)()
end
+
+if #opts.rbls == 0 then
+ lua_util.disable_module(N, "config")
+end
+
for _, w in pairs(white_symbols) do
for _, b in pairs(black_symbols) do
local csymbol = 'RBL_COMPOSITE_' .. w .. '_' .. b
local rspamd_logger = require 'rspamd_logger'
local hash = require 'rspamd_cryptobox_hash'
+local lua_util = require 'lua_util'
+local N = "replies"
local function make_key(goop)
local h = hash.create()
redis_params = rspamd_parse_redis_server('replies')
if not redis_params then
rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
+ lua_util.disable_module(N, "redis")
else
rspamd_config:register_symbol({
name = 'REPLIES_SET',
parse_rule(k, v)
end
end
+else
+ lua_util.disable_module(N, "config")
end
local rspamd_logger = require "rspamd_logger"
local rspamd_config = rspamd_config
local hash = require "rspamd_cryptobox_hash"
+local lua_util = require "lua_util"
+local N = "rspamd_update"
local rspamd_version = rspamd_version
local maps = {}
end, maps)
else
rspamd_logger.infox(rspamd_config, 'Module is unconfigured')
+ lua_util.disable_module(N, "config")
end
local rspamd_expression = require "rspamd_expression"
local rspamd_trie = require "rspamd_trie"
local util = require "rspamd_util"
+local lua_util = require "lua_util"
local fun = require "fun"
-- Known plugins
if has_rules then
post_process()
+else
+ lua_util.disable_module(N, "config")
end
local rspamd_logger = require "rspamd_logger"
local rspamd_trie = require "rspamd_trie"
local fun = require "fun"
+local lua_util = require "lua_util"
local mime_trie
local raw_trie
end
else
rspamd_logger.infox(rspamd_config, "Module is unconfigured")
+ lua_util.disable_module(N, "config")
end
local rspamd_logger = require "rspamd_logger"
local rspamd_http = require "rspamd_http"
local hash = require "rspamd_cryptobox_hash"
+local lua_util = require "lua_util"
local function cache_url(task, orig_url, url, key, param)
local function redis_trim_cb(err, data)
redis_params = rspamd_parse_redis_server('url_redirector')
if not redis_params then
rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
+ lua_util.disable_module(N, "redis")
else
if rspamd_plugins.surbl then
rspamd_plugins.surbl.register_redirect(url_redirector_handler)
else
rspamd_logger.infox(rspamd_config, 'surbl module is not enabled, disabling module')
+ lua_util.disable_module(N, "fail")
end
end
end
local rspamd_logger = require "rspamd_logger"
local rspamd_util = require "rspamd_util"
+local lua_util = require "lua_util"
-- This function is used for taskless redis requests (to load scripts)
local function redis_make_request(ev_base, cfg, key, is_write, callback, command, args)
redis_params = rspamd_parse_redis_server(N)
if not redis_params then
rspamd_logger.warnx(rspamd_config, 'no servers are specified, disabling module')
+ lua_util.disable_module(N, "redis")
return
end
for k, v in pairs(opts) do
end
if settings.threshold < 1 then
rspamd_logger.errx(rspamd_config, 'threshold should be >= 1, disabling module')
+ lua_util.disable_module(N, "config")
return
end
local rspamd_logger = require "rspamd_logger"
local rspamd_util = require "rspamd_util"
+local lua_util = require "lua_util"
local ucl = require "ucl"
-- This function is used for taskless redis requests (to load scripts)
if not opts then return end
redis_params = rspamd_parse_redis_server(N)
if not redis_params then
+ lua_util.disable_module(N, "redis")
rspamd_logger.warnx(rspamd_config, 'no servers are specified, disabling module')
return
end
local rspamd_logger = require "rspamd_logger"
local rspamd_util = require "rspamd_util"
local fun = require "fun"
+local lua_util = require "lua_util"
+
+local N = "whitelist"
local options = {
dmarc_allow_symbol = 'DMARC_POLICY_ALLOW',
end
end
end, options['rules'])
+ else
+ lua_util.disable_module(N, "config")
end
end