output-lua: initial packet support

Add key for storing packet pointer in the lua stack and a utility
function to retrieve it from lua callbacks.
pull/1112/head
Victor Julien 13 years ago
parent 15052e58a2
commit 53d7f800bf

@ -89,6 +89,15 @@ void LuaPrintStack(lua_State *state) {
}
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)
{

@ -28,6 +28,7 @@
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);

@ -69,6 +69,8 @@ typedef struct LogLuaThreadCtx_ {
} 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)
{

Loading…
Cancel
Save