]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
output-lua: make packet ptr available to all scripts
authorVictor Julien <victor@inliniac.net>
Fri, 21 Feb 2014 09:17:16 +0000 (10:17 +0100)
committerVictor Julien <victor@inliniac.net>
Fri, 15 Aug 2014 11:58:25 +0000 (13:58 +0200)
TxLogger and Packet logger need it to be able to use the Tuple
callback.

src/output-lua.c

index 6c937c1e28cd166c8dab950042bafe5d3189dc36..1785dc7336ca4f1731a48dff4e80048a08af59eb 100644 (file)
@@ -89,6 +89,10 @@ static int LuaTxLogger(ThreadVars *tv, void *thread_data, const Packet *p, Flow
 
     SCMutexLock(&td->lua_ctx->m);
 
+    /* we need the p in our callbacks */
+    lua_pushlightuserdata(td->lua_ctx->luastate, (void *)&lualog_ext_key_p);
+    lua_pushlightuserdata(td->lua_ctx->luastate, (void *)p);
+    lua_settable(td->lua_ctx->luastate, LUA_REGISTRYINDEX);
     /* we need the tx in our callbacks */
     lua_pushlightuserdata(td->lua_ctx->luastate, (void *)&lualog_ext_key_tx);
     lua_pushlightuserdata(td->lua_ctx->luastate, (void *)txptr);
@@ -156,6 +160,11 @@ static int LuaPacketLoggerAlerts(ThreadVars *tv, void *thread_data, const Packet
 
         lua_getglobal(td->lua_ctx->luastate, "log");
 
+        /* we need the p in our callbacks */
+        lua_pushlightuserdata(td->lua_ctx->luastate, (void *)&lualog_ext_key_p);
+        lua_pushlightuserdata(td->lua_ctx->luastate, (void *)p);
+        lua_settable(td->lua_ctx->luastate, LUA_REGISTRYINDEX);
+
         /* prepare data to pass to script */
         lua_newtable(td->lua_ctx->luastate);