}
extern const char lualog_ext_key_tx;
+extern const char lualog_ext_key_p;
+
+Packet *LuaStateGetPacket(lua_State *luastate)
+{
+ lua_pushlightuserdata(luastate, (void *)&lualog_ext_key_p);
+ lua_gettable(luastate, LUA_REGISTRYINDEX);
+ void *p = lua_touserdata(luastate, -1);
+ return (Packet *)p;
+}
void *LuaStateGetTX(lua_State *luastate)
{
void LuaPrintStack(lua_State *state);
+Packet *LuaStateGetPacket(lua_State *luastate);
void *LuaStateGetTX(lua_State *luastate);
int LuaCallbackError(lua_State *luastate, const char *msg);
int LuaReturnStringBuffer(lua_State *luastate, const uint8_t *input, size_t input_len);
} LogLuaThreadCtx;
const char lualog_ext_key_tx[] = "suricata:lualog:tx:ptr";
+/* key for p (packet) pointer */
+const char lualog_ext_key_p[] = "suricata:lualog:pkt:ptr";
static int LuaTxLogger(ThreadVars *tv, void *thread_data, const Packet *p, Flow *f, void *alstate, void *txptr, uint64_t tx_id)
{