From 32a6db58b2f203a55f6d3bbde40c2ef25450287f Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sat, 6 Oct 2018 09:23:03 +0100 Subject: [PATCH] [Minor] Support local confdir in lua --- src/lua/lua_common.c | 24 ++++++++++++++++++++---- src/lua/lua_common.h | 1 + src/lua/lua_config.c | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/lua/lua_common.c b/src/lua/lua_common.c index ac7a393b8..ab344e484 100644 --- a/src/lua/lua_common.c +++ b/src/lua/lua_common.c @@ -580,10 +580,15 @@ rspamd_lua_set_globals (struct rspamd_config *cfg, lua_State *L, /* Set known paths as rspamd_paths global */ lua_getglobal (L, "rspamd_paths"); if (lua_isnil (L, -1)) { - const gchar *confdir = RSPAMD_CONFDIR, *rundir = RSPAMD_RUNDIR, - *dbdir = RSPAMD_DBDIR, *logdir = RSPAMD_LOGDIR, - *wwwdir = RSPAMD_WWWDIR, *pluginsdir = RSPAMD_PLUGINSDIR, - *rulesdir = RSPAMD_RULESDIR, *lualibdir = RSPAMD_LUALIBDIR, + const gchar *confdir = RSPAMD_CONFDIR, + *local_confdir = RSPAMD_LOCAL_CONFDIR, + *rundir = RSPAMD_RUNDIR, + *dbdir = RSPAMD_DBDIR, + *logdir = RSPAMD_LOGDIR, + *wwwdir = RSPAMD_WWWDIR, + *pluginsdir = RSPAMD_PLUGINSDIR, + *rulesdir = RSPAMD_RULESDIR, + *lualibdir = RSPAMD_LUALIBDIR, *prefix = RSPAMD_PREFIX; const gchar *t; @@ -628,6 +633,11 @@ rspamd_lua_set_globals (struct rspamd_config *cfg, lua_State *L, confdir = t; } + t = getenv ("LOCAL_CONFDIR"); + if (t) { + local_confdir = t; + } + if (vars) { t = g_hash_table_lookup (vars, "PLUGINSDIR"); @@ -660,6 +670,11 @@ rspamd_lua_set_globals (struct rspamd_config *cfg, lua_State *L, confdir = t; } + t = g_hash_table_lookup (vars, "LOCAL_CONFDIR"); + if (t) { + local_confdir = t; + } + t = g_hash_table_lookup (vars, "DBDIR"); if (t) { dbdir = t; @@ -674,6 +689,7 @@ rspamd_lua_set_globals (struct rspamd_config *cfg, lua_State *L, lua_createtable (L, 0, 9); rspamd_lua_table_set (L, RSPAMD_CONFDIR_INDEX, confdir); + rspamd_lua_table_set (L, RSPAMD_LOCAL_CONFDIR_INDEX, local_confdir); rspamd_lua_table_set (L, RSPAMD_RUNDIR_INDEX, rundir); rspamd_lua_table_set (L, RSPAMD_DBDIR_INDEX, dbdir); rspamd_lua_table_set (L, RSPAMD_LOGDIR_INDEX, logdir); diff --git a/src/lua/lua_common.h b/src/lua/lua_common.h index af0b5f824..fccbf5115 100644 --- a/src/lua/lua_common.h +++ b/src/lua/lua_common.h @@ -425,6 +425,7 @@ gboolean rspamd_lua_require_function (lua_State *L, const gchar *modname, /* Paths defs */ #define RSPAMD_CONFDIR_INDEX "CONFDIR" +#define RSPAMD_LOCAL_CONFDIR_INDEX "LOCAL_CONFDIR" #define RSPAMD_RUNDIR_INDEX "RUNDIR" #define RSPAMD_DBDIR_INDEX "DBDIR" #define RSPAMD_LOGDIR_INDEX "LOGDIR" diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c index f15c04e46..32796fb01 100644 --- a/src/lua/lua_config.c +++ b/src/lua/lua_config.c @@ -3453,6 +3453,7 @@ lua_config_load_ucl (lua_State *L) if (lua_istable (L, -1)) { LUA_TABLE_TO_HASH(paths, RSPAMD_CONFDIR_INDEX); + LUA_TABLE_TO_HASH(paths, RSPAMD_LOCAL_CONFDIR_INDEX); LUA_TABLE_TO_HASH(paths, RSPAMD_RUNDIR_INDEX); LUA_TABLE_TO_HASH(paths, RSPAMD_DBDIR_INDEX); LUA_TABLE_TO_HASH(paths, RSPAMD_LOGDIR_INDEX); -- 2.39.5