commit a1410d8: [Minor] Add more redis prefixes
Vsevolod Stakhov
vsevolod at highsecure.ru
Wed Dec 25 20:56:08 UTC 2019
Author: Vsevolod Stakhov
Date: 2019-12-25 20:52:14 +0000
URL: https://github.com/rspamd/rspamd/commit/a1410d8d5e62886dd6a51784bd96c3d844b0d072 (HEAD -> master)
[Minor] Add more redis prefixes
---
src/plugins/lua/antivirus.lua | 9 ++++++++-
src/plugins/lua/external_services.lua | 9 ++++++++-
src/plugins/lua/greylist.lua | 8 ++++++++
src/plugins/lua/maps_stats.lua | 12 +++++++++++-
src/plugins/lua/mx_check.lua | 12 ++++++++----
src/plugins/lua/p0f.lua | 5 +++++
src/plugins/lua/url_redirector.lua | 10 ++++++++++
7 files changed, 58 insertions(+), 7 deletions(-)
diff --git a/src/plugins/lua/antivirus.lua b/src/plugins/lua/antivirus.lua
index 34b0c6947..5d7268b06 100644
--- a/src/plugins/lua/antivirus.lua
+++ b/src/plugins/lua/antivirus.lua
@@ -16,6 +16,7 @@ limitations under the License.
local rspamd_logger = require "rspamd_logger"
local lua_util = require "lua_util"
+local lua_redis = require "lua_redis"
local fun = require "fun"
local lua_antivirus = require("lua_scanners").filter('antivirus')
local common = require "lua_scanners/common"
@@ -119,6 +120,12 @@ local function add_antivirus_rule(sym, opts)
rule.patterns = common.create_regex_table(opts.patterns or {})
rule.patterns_fail = common.create_regex_table(opts.patterns_fail or {})
+ lua_redis.register_prefix(rule.prefix .. '_*', N,
+ string.format('Antivirus cache for rule "%s"',
+ rule.type), {
+ type = 'string',
+ })
+
if opts.whitelist then
rule.whitelist = rspamd_config:add_hash_map(opts.whitelist)
end
@@ -142,7 +149,7 @@ end
-- Registration
local opts = rspamd_config:get_all_opt(N)
if opts and type(opts) == 'table' then
- redis_params = rspamd_parse_redis_server(N)
+ redis_params = lua_redis.parse_redis_server(N)
local has_valid = false
for k, m in pairs(opts) do
if type(m) == 'table' then
diff --git a/src/plugins/lua/external_services.lua b/src/plugins/lua/external_services.lua
index 0a9f39ad9..8e29accbe 100644
--- a/src/plugins/lua/external_services.lua
+++ b/src/plugins/lua/external_services.lua
@@ -17,6 +17,7 @@ limitations under the License.
local rspamd_logger = require "rspamd_logger"
local lua_util = require "lua_util"
+local lua_redis = require "lua_redis"
local fun = require "fun"
local lua_scanners = require("lua_scanners").filter('scanner')
local common = require "lua_scanners/common"
@@ -142,6 +143,12 @@ local function add_scanner_rule(sym, opts)
rule.redis_params = redis_params
+ lua_redis.register_prefix(rule.prefix .. '_*', N,
+ string.format('External services cache for rule "%s"',
+ rule.type), {
+ type = 'string',
+ })
+
-- if any mime_part filter defined, do not scan all attachments
if opts.mime_parts_filter_regex ~= nil
or opts.mime_parts_filter_ext ~= nil then
@@ -185,7 +192,7 @@ end
-- Registration
local opts = rspamd_config:get_all_opt(N)
if opts and type(opts) == 'table' then
- redis_params = rspamd_parse_redis_server(N)
+ redis_params = lua_redis.parse_redis_server(N)
local has_valid = false
for k, m in pairs(opts) do
if type(m) == 'table' and m.servers then
diff --git a/src/plugins/lua/greylist.lua b/src/plugins/lua/greylist.lua
index 3c6335ea1..671b2be69 100644
--- a/src/plugins/lua/greylist.lua
+++ b/src/plugins/lua/greylist.lua
@@ -464,6 +464,14 @@ if opts then
rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
rspamd_lua_utils.disable_module(N, "redis")
else
+ lua_redis.register_prefix(settings.key_prefix .. 'b[a-z0-9]{20}', N,
+ 'Greylisting elements (body hashes)"', {
+ type = 'string',
+ })
+ lua_redis.register_prefix(settings.key_prefix .. 'm[a-z0-9]{20}', N,
+ 'Greylisting elements (meta hashes)"', {
+ type = 'string',
+ })
rspamd_config:register_symbol({
name = 'GREYLIST_SAVE',
type = 'postfilter',
diff --git a/src/plugins/lua/maps_stats.lua b/src/plugins/lua/maps_stats.lua
index 725629a77..46a769f34 100644
--- a/src/plugins/lua/maps_stats.lua
+++ b/src/plugins/lua/maps_stats.lua
@@ -105,7 +105,17 @@ if opts then
end
redis_params = lua_redis.parse_redis_server(N, opts)
-
+-- XXX, this is a poor approach as not all maps are defined here...
+local tmaps = rspamd_config:get_maps()
+for _,m in ipairs(tmaps) do
+ if m:get_uri() ~= 'static' then
+ lua_redis.register_prefix(settings.prefix .. m:get_uri(), N,
+ 'Maps stats data', {
+ type = 'zlist',
+ persistent = true,
+ })
+ end
+end
if redis_params then
rspamd_config:add_on_load(function (_, ev_base, worker)
diff --git a/src/plugins/lua/mx_check.lua b/src/plugins/lua/mx_check.lua
index 61d1cd1b8..d67524c21 100644
--- a/src/plugins/lua/mx_check.lua
+++ b/src/plugins/lua/mx_check.lua
@@ -23,6 +23,7 @@ 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 lua_redis = require "lua_redis"
local N = "mx_check"
local fun = require "fun"
@@ -267,15 +268,18 @@ if not (opts and type(opts) == 'table') then
return
end
if opts then
- redis_params = rspamd_parse_redis_server('mx_check')
+ redis_params = lua_redis.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
- settings[k] = v
- end
+
+ settings = lua_util.override_defaults(settings, opts)
+ lua_redis.register_prefix(settings.key_prefix .. '*', N,
+ 'MX check cache', {
+ type = 'string',
+ })
local id = rspamd_config:register_symbol({
name = settings.symbol_bad_mx,
diff --git a/src/plugins/lua/p0f.lua b/src/plugins/lua/p0f.lua
index f7fed7886..3242e73b0 100644
--- a/src/plugins/lua/p0f.lua
+++ b/src/plugins/lua/p0f.lua
@@ -78,6 +78,11 @@ rule = p0f.configure(opts)
if rule then
rule.redis_params = lua_redis.parse_redis_server(N)
+ lua_redis.register_prefix(rule.prefix .. '*', N,
+ 'P0f check cache', {
+ type = 'string',
+ })
+
local id = rspamd_config:register_symbol({
name = 'P0F_CHECK',
type = 'prefilter,nostat',
diff --git a/src/plugins/lua/url_redirector.lua b/src/plugins/lua/url_redirector.lua
index 4952dc25f..ba7d77649 100644
--- a/src/plugins/lua/url_redirector.lua
+++ b/src/plugins/lua/url_redirector.lua
@@ -343,6 +343,16 @@ if opts then
settings.redirector_hosts_map = lua_maps.map_add_from_ucl(settings.redirector_hosts_map,
'set', 'Redirectors definitions')
+ lua_redis.register_prefix(settings.key_prefix .. '[a-z0-9]{32}', N,
+ 'URL redirector hashes', {
+ type = 'string',
+ })
+ if settings.top_urls_key then
+ lua_redis.register_prefix(settings.top_urls_key, N,
+ 'URL redirector top urls', {
+ type = 'zlist',
+ })
+ end
local id = rspamd_config:register_symbol{
name = 'URL_REDIRECTOR_CHECK',
type = 'callback,prefilter',
More information about the Commits
mailing list