diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-11-20 07:36:23 +0000 |
---|---|---|
committer | Andrew Lewis <nerf@judo.za.org> | 2018-01-24 12:02:47 +0200 |
commit | 5dbf2fd9253d6fa7f910e8eb8ecb3b73127863c7 (patch) | |
tree | 5b10666c976e47206dfca7c48b55c1fbb3814432 /src | |
parent | 1d0429e91e41bfd44a3d9c4818201f41009bca1f (diff) | |
download | rspamd-5dbf2fd9253d6fa7f910e8eb8ecb3b73127863c7.tar.gz rspamd-5dbf2fd9253d6fa7f910e8eb8ecb3b73127863c7.zip |
[Fix] Fix parsing of the per-user script
Issue: #1843
MFH: rspamd-1.6
Diffstat (limited to 'src')
-rw-r--r-- | src/libstat/backends/redis_backend.c | 49 |
1 files changed, 29 insertions, 20 deletions
diff --git a/src/libstat/backends/redis_backend.c b/src/libstat/backends/redis_backend.c index d634d4448..b01c2d3d2 100644 --- a/src/libstat/backends/redis_backend.c +++ b/src/libstat/backends/redis_backend.c @@ -1105,8 +1105,7 @@ rspamd_redis_try_ucl (struct redis_stat_ctx *backend, struct rspamd_config *cfg, const gchar *symbol) { - const ucl_object_t *elt, *relt, *users_enabled; - const gchar *lua_script; + const ucl_object_t *elt, *relt; elt = ucl_object_lookup_any (obj, "read_servers", "servers", NULL); @@ -1147,6 +1146,33 @@ 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); + } + else { + backend->dbname = NULL; + } + + elt = ucl_object_lookup (obj, "password"); + if (elt) { + backend->password = ucl_object_tostring (elt); + } + else { + backend->password = NULL; + } + + return TRUE; +} + +static void +rspamd_redis_parse_classifier_opts (struct redis_stat_ctx *backend, + const ucl_object_t *obj, + struct rspamd_config *cfg) +{ + const gchar *lua_script; + const ucl_object_t *elt, *users_enabled; + users_enabled = ucl_object_lookup_any (obj, "per_user", "users_enabled", NULL); @@ -1204,14 +1230,6 @@ rspamd_redis_try_ucl (struct redis_stat_ctx *backend, backend->timeout = REDIS_DEFAULT_TIMEOUT; } - elt = ucl_object_lookup (obj, "password"); - if (elt) { - backend->password = ucl_object_tostring (elt); - } - else { - backend->password = NULL; - } - elt = ucl_object_lookup (obj, "store_tokens"); if (elt) { backend->store_tokens = ucl_object_toboolean (elt); @@ -1235,16 +1253,6 @@ rspamd_redis_try_ucl (struct redis_stat_ctx *backend, else { backend->expiry = 0; } - - elt = ucl_object_lookup_any (obj, "db", "database", "dbname", NULL); - if (elt) { - backend->dbname = ucl_object_tostring (elt); - } - else { - backend->dbname = NULL; - } - - return TRUE; } gpointer @@ -1302,6 +1310,7 @@ rspamd_redis_init (struct rspamd_stat_ctx *ctx, return NULL; } + rspamd_redis_parse_classifier_opts (backend, st->classifier->cfg->opts, cfg); stf->clcf->flags |= RSPAMD_FLAG_CLASSIFIER_INCREMENTING_BACKEND; backend->stcf = stf; |