aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua/lua_session.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2014-08-25 13:17:21 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2014-08-25 13:17:21 +0100
commitc2765b3eb3c3beb3d9f42dc061761df2e300904c (patch)
tree0f5924f4fd821b16a258465d9dcb0068e5332bf2 /src/lua/lua_session.c
parenta1be94b4c4b59de216e0b8b721a951b2325f7215 (diff)
downloadrspamd-c2765b3eb3c3beb3d9f42dc061761df2e300904c.tar.gz
rspamd-c2765b3eb3c3beb3d9f42dc061761df2e300904c.zip
Use modules preload for lua.
Diffstat (limited to 'src/lua/lua_session.c')
-rw-r--r--src/lua/lua_session.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lua/lua_session.c b/src/lua/lua_session.c
index 5abc3aa36..3fa636a5b 100644
--- a/src/lua/lua_session.c
+++ b/src/lua/lua_session.c
@@ -25,7 +25,7 @@
/* Public prototypes */
struct rspamd_async_session * lua_check_session (lua_State * L);
-gint luaopen_session (lua_State * L);
+void luaopen_session (lua_State * L);
/* Lua bindings */
LUA_FUNCTION_DEF (session, register_async_event);
@@ -302,7 +302,16 @@ lua_session_check_session_pending (lua_State *L)
return 1;
}
-gint
+static gint
+lua_load_session (lua_State * L)
+{
+ lua_newtable (L);
+ luaL_register (L, NULL, sessionlib_f);
+
+ return 1;
+}
+
+void
luaopen_session (lua_State * L)
{
luaL_newmetatable (L, "rspamd{session}");
@@ -315,15 +324,12 @@ luaopen_session (lua_State * L)
lua_rawset (L, -3);
luaL_register (L, NULL, sessionlib_m);
- luaL_register (L, "rspamd_session", sessionlib_f);
+ rspamd_lua_add_preload (L, "rspamd_session", lua_load_session);
lua_pop (L, 1); /* remove metatable from stack */
/* Simple event class */
rspamd_lua_new_class (L, "rspamd{event}", eventlib_m);
- luaL_register (L, "rspamd_event", null_reg);
lua_pop (L, 1); /* remove metatable from stack */
-
- return 1;
}