38 static const char smtp_tx_mt[] =
"suricata:smtp:tx";
80 luaL_getmetatable(L, smtp_tx_mt);
81 lua_setmetatable(L, -2);
86 static int LuaSmtpTxGetMimeField(
lua_State *L)
100 const char *
name = luaL_checkstring(L, 2);
105 const uint8_t *field_value;
107 if (SCMimeSmtpGetHeader(tx->
mime_state,
name, &field_value, &field_len)) {
114 static int LuaSmtpTxGetMimeList(
lua_State *L)
128 const uint8_t *field_name;
133 while (SCMimeSmtpGetHeaderName(tx->
mime_state, &field_name, &field_len, (uint32_t)num)) {
134 lua_pushinteger(L, num + 1);
142 static int LuaSmtpTxGetMailFrom(
lua_State *L)
160 static int LuaSmtpTxGetRcptList(
lua_State *L)
177 lua_pushinteger(L, u++);
185 static const struct luaL_Reg smtptxlib[] = {
186 {
"get_mime_field", LuaSmtpTxGetMimeField },
187 {
"get_mime_list", LuaSmtpTxGetMimeList },
188 {
"get_mail_from", LuaSmtpTxGetMailFrom },
189 {
"get_rcpt_list", LuaSmtpTxGetRcptList },
193 static const struct luaL_Reg smtplib[] = {
194 {
"get_tx", LuaSmtpGetTx },
200 luaL_newmetatable(L, smtp_tx_mt);
201 lua_pushvalue(L, -1);
202 lua_setfield(L, -2,
"__index");
203 luaL_setfuncs(L, smtptxlib, 0);
205 luaL_newlib(L, smtplib);