27 static const char suricata_rule_mt[] =
"suricata:rule:mt";
60 const size_t msg_size = s->
msg ? strlen(s->
msg) + 1 : 0;
71 char *strs = (
char *)(r + 1);
74 memcpy(strs, s->
msg, msg_size);
84 luaL_getmetatable(L, suricata_rule_mt);
85 lua_setmetatable(L, -2);
97 lua_pushinteger(L, r->
sid);
108 lua_pushinteger(L, r->
gid);
119 lua_pushinteger(L, r->
rev);
123 static int LuaRuleGetAction(
lua_State *L)
131 const char *action =
"";
142 lua_pushstring(L, action);
153 lua_pushstring(L, r->
msg ? r->
msg :
"");
157 static int LuaRuleGetClassDescription(
lua_State *L)
168 static int LuaRuleGetPriority(
lua_State *L)
175 lua_pushinteger(L, r->
prio);
179 static const struct luaL_Reg rulemt[] = {
181 {
"action", LuaRuleGetAction },
182 {
"class_description", LuaRuleGetClassDescription, },
183 {
"gid", LuaRuleGetGid, },
184 {
"msg", LuaRuleGetMsg },
185 {
"priority", LuaRuleGetPriority },
186 {
"rev", LuaRuleGetRev, },
187 {
"sid", LuaRuleGetSid, },
192 static const struct luaL_Reg rulelib[] = {
194 {
"get_rule", LuaRuleGetRule, },
201 luaL_newmetatable(L, suricata_rule_mt);
202 lua_pushvalue(L, -1);
203 lua_setfield(L, -2,
"__index");
204 luaL_setfuncs(L, rulemt, 0);
206 luaL_newlib(L, rulelib);