aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-07-16 16:33:28 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-07-16 16:33:28 +0100
commit8d080cdc349ee281701ae185d2053314611875da (patch)
treee9725e3153e9f42574d06601b200d107ba80be1b
parent19f4379a27a083aea45965e05c75012409060195 (diff)
downloadrspamd-8d080cdc349ee281701ae185d2053314611875da.tar.gz
rspamd-8d080cdc349ee281701ae185d2053314611875da.zip
[Fix] Fix setting of path and cpath for Lua
-rw-r--r--src/lua/lua_common.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/lua/lua_common.c b/src/lua/lua_common.c
index 2af506f13..58c728607 100644
--- a/src/lua/lua_common.c
+++ b/src/lua/lua_common.c
@@ -253,14 +253,25 @@ rspamd_lua_set_path (lua_State *L, struct rspamd_config *cfg, GHashTable *vars)
if (additional_path) {
rspamd_snprintf (path_buf, sizeof (path_buf),
- "%s/lua/?.lua;%s/lua/?.lua;%s/?.lua;%s/?.lua;%s/?.so;%s;%s",
+ "%s/lua/?.lua;"
+ "%s/lua/?.lua;"
+ "%s/?.lua;"
+ "%s/?.lua;"
+ "%s/?/init.lua;"
+ "%s;"
+ "%s",
pluginsdir, RSPAMD_CONFDIR, rulesdir,
lualibdir, lualibdir,
additional_path, old_path);
}
else {
rspamd_snprintf (path_buf, sizeof (path_buf),
- "%s/lua/?.lua;%s/lua/?.lua;%s/?.lua;%s/?.lua;%s/?.so;%s",
+ "%s/lua/?.lua;"
+ "%s/lua/?.lua;"
+ "%s/?.lua;"
+ "%s/?.lua;"
+ "%s/?/init.lua;"
+ "%s",
pluginsdir, RSPAMD_CONFDIR, rulesdir,
lualibdir, lualibdir,
old_path);
@@ -269,6 +280,20 @@ rspamd_lua_set_path (lua_State *L, struct rspamd_config *cfg, GHashTable *vars)
lua_pop (L, 1);
lua_pushstring (L, path_buf);
lua_setfield (L, -2, "path");
+
+ lua_getglobal (L, "package");
+ lua_getfield (L, -1, "cpath");
+ old_path = luaL_checkstring (L, -1);
+
+ rspamd_snprintf (path_buf, sizeof (path_buf),
+ "%s/?.so;"
+ "%s",
+ lualibdir,
+ old_path);
+ lua_pop (L, 1);
+ lua_pushstring (L, path_buf);
+ lua_setfield (L, -2, "cpath");
+
lua_pop (L, 1);
}