lua: export packet keywords to detect scripts

Set packet pointer, so it's available to the lua keywords that
require it.
pull/1112/head
Victor Julien 11 years ago
parent 5a86e57d41
commit 22272f6c5b

@ -558,7 +558,8 @@ static int LuaDecrFlowint(lua_State *luastate)
}
void LuaExtensionsMatchSetup(lua_State *lua_state, DetectLuaData *ld, DetectEngineThreadCtx *det_ctx, Flow *f, int flow_locked)
void LuaExtensionsMatchSetup(lua_State *lua_state, DetectLuaData *ld, DetectEngineThreadCtx *det_ctx,
Flow *f, int flow_locked, Packet *p)
{
SCLogDebug("det_ctx %p, f %p", det_ctx, f);
@ -582,6 +583,9 @@ void LuaExtensionsMatchSetup(lua_State *lua_state, DetectLuaData *ld, DetectEngi
}
}
}
if (p != NULL)
LuaStateSetPacket(lua_state, p);
}
/**

@ -29,7 +29,7 @@ int LuaRegisterExtensions(lua_State *);
void LuaExtensionsMatchSetup(lua_State *lua_state,
DetectLuaData *, DetectEngineThreadCtx *det_ctx,
Flow *f, int flow_locked);
Flow *f, int flow_locked, Packet *p);
#endif /* HAVE_LUA */
#endif

@ -288,7 +288,8 @@ int DetectLuaMatchBuffer(DetectEngineThreadCtx *det_ctx, Signature *s, SigMatch
SCReturnInt(0);
/* setup extension data for use in lua c functions */
LuaExtensionsMatchSetup(tluajit->luastate, luajit, det_ctx, f, flow_lock);
LuaExtensionsMatchSetup(tluajit->luastate, luajit, det_ctx,
f, flow_lock, /* no packet in the ctx */NULL);
/* prepare data to pass to script */
lua_getglobal(tluajit->luastate, "match");
@ -389,7 +390,8 @@ static int DetectLuaMatch (ThreadVars *tv, DetectEngineThreadCtx *det_ctx,
SCReturnInt(0);
/* setup extension data for use in lua c functions */
LuaExtensionsMatchSetup(tluajit->luastate, luajit, det_ctx, p->flow, /* flow not locked */LUA_FLOW_NOT_LOCKED_BY_PARENT);
LuaExtensionsMatchSetup(tluajit->luastate, luajit, det_ctx,
p->flow, /* flow not locked */LUA_FLOW_NOT_LOCKED_BY_PARENT, p);
if ((tluajit->flags & DATATYPE_PAYLOAD) && p->payload_len == 0)
SCReturnInt(0);

Loading…
Cancel
Save