]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Another fix for Redis schema 5129/head
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 7 Sep 2024 13:42:15 +0000 (14:42 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 7 Sep 2024 13:42:15 +0000 (14:42 +0100)
Issue: #5112

lualib/lua_redis.lua
src/plugins/lua/aws_s3.lua
src/plugins/lua/bimi.lua
src/plugins/lua/history_redis.lua

index 2c77c100a2ced7aa587056ee9e42670caff028ba..43acfee6587cda67452efcf08eb062ccaf4636c3 100644 (file)
@@ -24,11 +24,12 @@ local exports = {}
 local E = {}
 local N = "lua_redis"
 
+local db_schema = (ts.number / tostring + ts.string):is_optional():describe("Database number")
 local common_schema = {
   timeout = (ts.number + ts.string / lutil.parse_time_interval):is_optional():describe("Connection timeout"),
-  db = ts.string:is_optional():describe("Database number"),
-  database = ts.string:is_optional():describe("Database number"),
-  dbname = ts.string:is_optional():describe("Database number"),
+  db = db_schema,
+  database = db_schema,
+  dbname = db_schema,
   prefix = ts.string:is_optional():describe("Key prefix"),
   username = ts.string:is_optional():describe("Username"),
   password = ts.string:is_optional():describe("Password"),
@@ -64,7 +65,8 @@ local server_schema = lutil.table_merge({
 
 local enrich_schema = function(external)
   return ts.one_of {
-    ts.shape(external), -- no specific redis parameters
+    ts.shape(lutil.table_merge(common_schema,
+        external)), -- no specific redis servers (e.g when global settings are used)
     ts.shape(lutil.table_merge(read_schema, external)), -- read_servers specified
     ts.shape(lutil.table_merge(write_schema, external)), -- write_servers specified
     ts.shape(lutil.table_merge(rw_schema, external)), -- both read and write servers defined
index 30e88d2cd1cb65016b47b5ce4001920de6ecc0f6..ac344d86cd515ff212d352c069e4823e9963aa86 100644 (file)
@@ -238,7 +238,7 @@ settings = lua_util.override_defaults(settings, opts)
 local res, err = settings_schema:transform(settings)
 
 if not res then
-  rspamd_logger.warnx(rspamd_config, 'plugin is misconfigured: %s', err)
+  rspamd_logger.warnx(rspamd_config, 'plugin %s is misconfigured: %s', N, err)
   lua_util.disable_module(N, "config")
   return
 end
index 2783590693b7b295a01c3ae88a51d3fbe6992fa5..78949a5c046c708c2a94ec57adcffe7654fb0fb6 100644 (file)
@@ -265,7 +265,7 @@ local function check_bimi_vmc(task, domain, record)
         end
         if redis_params.username then
           if redis_params.password then
-            password = string.format( '%s:%s@', redis_params.username, redis_params.password)
+            password = string.format('%s:%s@', redis_params.username, redis_params.password)
           else
             rspamd_logger.warnx(task, "Redis requires a password when username is supplied")
           end
@@ -358,7 +358,7 @@ settings = lua_util.override_defaults(settings, opts)
 local res, err = settings_schema:transform(settings)
 
 if not res then
-  rspamd_logger.warnx(rspamd_config, 'plugin is misconfigured: %s', err)
+  rspamd_logger.warnx(rspamd_config, 'plugin %s is misconfigured: %s', N, err)
   local err_msg = string.format("schema error: %s", res)
   lua_util.config_utils.push_config_error(N, err_msg)
   lua_util.disable_module(N, "failed", err_msg)
index fff9f46b371931df3cc4241db70a18d21d206755..a3fdb0ec44b2c53ef8a84e8c46b0e3954dcbc8de 100644 (file)
@@ -281,7 +281,7 @@ if opts then
   local res, err = settings_schema:transform(settings)
 
   if not res then
-    rspamd_logger.warnx(rspamd_config, '%s: plugin is misconfigured: %s', N, err)
+    rspamd_logger.warnx(rspamd_config, 'plugin %s is misconfigured: %s', N, err)
     lua_util.disable_module(N, "config")
     return
   end