38 static const char smtp_tx_mt[] =
"suricata:smtp:tx";
71 luaL_getmetatable(L, smtp_tx_mt);
72 lua_setmetatable(L, -2);
77 static int LuaSmtpTxGetMimeField(
lua_State *L)
79 struct LuaSmtpTx *
tx = luaL_checkudata(L, 1, smtp_tx_mt);
85 const char *
name = luaL_checkstring(L, 2);
90 const uint8_t *field_value;
92 if (SCMimeSmtpGetHeader(
tx->tx->
mime_state,
name, &field_value, &field_len)) {
99 static int LuaSmtpTxGetMimeList(
lua_State *L)
101 struct LuaSmtpTx *
tx = luaL_checkudata(L, 1, smtp_tx_mt);
107 const uint8_t *field_name;
111 while (SCMimeSmtpGetHeaderName(
tx->tx->
mime_state, &field_name, &field_len, (uint32_t)num)) {
112 lua_pushinteger(L, num);
120 static int LuaSmtpTxGetMailFrom(
lua_State *L)
122 struct LuaSmtpTx *
tx = luaL_checkudata(L, 1, smtp_tx_mt);
132 static int LuaSmtpTxGetRcptList(
lua_State *L)
134 struct LuaSmtpTx *
tx = luaL_checkudata(L, 1, smtp_tx_mt);
143 lua_pushinteger(L, u++);
151 static const struct luaL_Reg smtptxlib[] = {
152 {
"get_mime_field", LuaSmtpTxGetMimeField },
153 {
"get_mime_list", LuaSmtpTxGetMimeList },
154 {
"get_mail_from", LuaSmtpTxGetMailFrom },
155 {
"get_rcpt_list", LuaSmtpTxGetRcptList },
159 static const struct luaL_Reg smtplib[] = {
160 {
"get_tx", LuaSmtpGetTx },
166 luaL_newmetatable(L, smtp_tx_mt);
167 lua_pushvalue(L, -1);
168 lua_setfield(L, -2,
"__index");
169 luaL_setfuncs(L, smtptxlib, 0);
171 luaL_newlib(L, smtplib);