From: Vsevolod Stakhov Date: Mon, 19 Mar 2018 14:13:02 +0000 (+0000) Subject: [Minor] Allow to parse integer database names for Redis X-Git-Tag: 1.7.1~7 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e9c35582e7b22661975f5898891d02bbe9651ebf;p=rspamd.git [Minor] Allow to parse integer database names for Redis Issue: #2083 Closes: #2083 --- diff --git a/lualib/lua_redis.lua b/lualib/lua_redis.lua index ee015fef2..067353abc 100644 --- a/lualib/lua_redis.lua +++ b/lualib/lua_redis.lua @@ -98,6 +98,8 @@ local function try_load_redis_servers(options, rspamd_config, result) result['db'] = tostring(options['db']) elseif options['dbname'] then result['db'] = tostring(options['dbname']) + elseif options['database'] then + result['db'] = tostring(options['database']) end end if options['password'] and not result['password'] then diff --git a/src/libstat/backends/redis_backend.c b/src/libstat/backends/redis_backend.c index f191dc974..121162fc8 100644 --- a/src/libstat/backends/redis_backend.c +++ b/src/libstat/backends/redis_backend.c @@ -1256,7 +1256,12 @@ rspamd_redis_try_ucl (struct redis_stat_ctx *backend, elt = ucl_object_lookup_any (obj, "db", "database", "dbname", NULL); if (elt) { - backend->dbname = ucl_object_tostring (elt); + if (ucl_object_type (elt) == UCL_STRING) { + backend->dbname = ucl_object_tostring (elt); + } + else if (ucl_object_type (elt) == UCL_INT) { + backend->dbname = ucl_object_tostring_forced (elt); + } } else { backend->dbname = NULL; diff --git a/src/libstat/learn_cache/redis_cache.c b/src/libstat/learn_cache/redis_cache.c index b7ba71f4b..c3f4c6598 100644 --- a/src/libstat/learn_cache/redis_cache.c +++ b/src/libstat/learn_cache/redis_cache.c @@ -274,7 +274,12 @@ rspamd_redis_cache_try_ucl (struct rspamd_redis_cache_ctx *cache_ctx, elt = ucl_object_lookup_any (obj, "db", "database", "dbname", NULL); if (elt) { - cache_ctx->dbname = ucl_object_tostring (elt); + if (ucl_object_type (elt) == UCL_STRING) { + cache_ctx->dbname = ucl_object_tostring (elt); + } + else if (ucl_object_type (elt) == UCL_INT) { + cache_ctx->dbname = ucl_object_tostring_forced (elt); + } } else { cache_ctx->dbname = NULL;