]> source.dussan.org Git - rspamd.git/commitdiff
Allow to check mempool on any position in the stack.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 17 Mar 2015 16:34:20 +0000 (16:34 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 17 Mar 2015 16:34:20 +0000 (16:34 +0000)
src/lua/lua_common.h
src/lua/lua_mempool.c
src/lua/lua_session.c

index ce817d1e193c6bff093fb23fffe7cc8e1f9cd89b..1f3ea59225ed82fa431a334bbe21b834144de20d 100644 (file)
@@ -230,7 +230,7 @@ void rspamd_lua_dumpstack (lua_State *L);
 /* Set lua path according to the configuration */
 void rspamd_lua_set_path (lua_State *L, struct rspamd_config *cfg);
 
-struct memory_pool_s * rspamd_lua_check_mempool (lua_State * L);
+struct memory_pool_s * rspamd_lua_check_mempool (lua_State * L, gint pos);
 
 
 #endif /* WITH_LUA */
index 049f8080e7d0b47a1454f76d632ad67693de4aaf..e6d80ab1fb607ade2b0dd06b5e98656fc037f9dc 100644 (file)
 #include "lua_common.h"
 #include "mem_pool.h"
 
-/* Public prototypes */
-struct memory_pool_s * rspamd_lua_check_mempool (lua_State * L);
-void luaopen_mempool (lua_State * L);
-
 /* Lua bindings */
 LUA_FUNCTION_DEF (mempool, create);
 LUA_FUNCTION_DEF (mempool, memory_pool_add_destructor);
@@ -64,10 +60,10 @@ struct lua_mempool_udata {
 };
 
 struct memory_pool_s *
-rspamd_lua_check_mempool (lua_State * L)
+rspamd_lua_check_mempool (lua_State * L, gint pos)
 {
-       void *ud = luaL_checkudata (L, 1, "rspamd{mempool}");
-       luaL_argcheck (L, ud != NULL, 1, "'mempool' expected");
+       void *ud = luaL_checkudata (L, pos, "rspamd{mempool}");
+       luaL_argcheck (L, ud != NULL, pos, "'mempool' expected");
        return ud ? *((struct memory_pool_s **)ud) : NULL;
 }
 
@@ -105,7 +101,7 @@ lua_mempool_destructor_func (gpointer p)
 static int
 lua_mempool_memory_pool_add_destructor (lua_State *L)
 {
-       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L);
+       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L, 1);
        struct lua_mempool_udata *ud;
 
        if (mempool) {
@@ -135,7 +131,7 @@ lua_mempool_memory_pool_add_destructor (lua_State *L)
 static int
 lua_mempool_memory_pool_delete (lua_State *L)
 {
-       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L);
+       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L, 1);
 
        if (mempool) {
                rspamd_mempool_delete (mempool);
@@ -151,7 +147,7 @@ lua_mempool_memory_pool_delete (lua_State *L)
 static int
 lua_mempool_memory_pool_stat (lua_State *L)
 {
-       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L);
+       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L, 1);
 
        if (mempool) {
 
@@ -166,7 +162,7 @@ lua_mempool_memory_pool_stat (lua_State *L)
 static int
 lua_mempool_memory_pool_suggest_size (lua_State *L)
 {
-       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L);
+       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L, 1);
 
        if (mempool) {
                lua_pushinteger (L, rspamd_mempool_suggest_size ());
@@ -182,7 +178,7 @@ lua_mempool_memory_pool_suggest_size (lua_State *L)
 static int
 lua_mempool_memory_pool_set_variable (lua_State *L)
 {
-       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L);
+       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L, 1);
        const gchar *var = luaL_checkstring (L, 2),
        *value = luaL_checkstring (L, 3);
 
@@ -201,7 +197,7 @@ lua_mempool_memory_pool_set_variable (lua_State *L)
 static int
 lua_mempool_memory_pool_get_variable (lua_State *L)
 {
-       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L);
+       struct memory_pool_s *mempool = rspamd_lua_check_mempool (L, 1);
        const gchar *var = luaL_checkstring (L, 2);
        gchar *value;
 
index 3fa636a5bc9c5f41d0992a3b6ce6f9733a1cd631..bbbd6695ead5df2e8416262684c864cb9331e251 100644 (file)
@@ -156,7 +156,7 @@ lua_session_create (lua_State *L)
                return 1;
        }
 
-       mempool = rspamd_lua_check_mempool (L);
+       mempool = rspamd_lua_check_mempool (L, 1);
        if (mempool == NULL) {
                msg_err ("invalid mempool argument to rspamd_session.create");
                lua_pushnil (L);