Browse Source

[Minor] Add method to get raw headers of a mime part

tags/1.9.0
Vsevolod Stakhov 5 years ago
parent
commit
b07563f213
1 changed files with 33 additions and 1 deletions
  1. 33
    1
      src/lua/lua_mimepart.c

+ 33
- 1
src/lua/lua_mimepart.c View File

* @return {number} number of header's occurrencies or 0 if not found * @return {number} number of header's occurrencies or 0 if not found
*/ */
LUA_FUNCTION_DEF (mimepart, get_header_count); LUA_FUNCTION_DEF (mimepart, get_header_count);

/***
* @method mimepart:get_raw_headers()
* Get all undecoded headers of a mime part as a string
* @return {rspamd_text} all raw headers for a message as opaque text
*/
LUA_FUNCTION_DEF (mimepart, get_raw_headers);


/*** /***
* @method mime_part:get_content() * @method mime_part:get_content()
* Get the parsed content of part * Get the parsed content of part
LUA_INTERFACE_DEF (mimepart, get_header_raw), LUA_INTERFACE_DEF (mimepart, get_header_raw),
LUA_INTERFACE_DEF (mimepart, get_header_full), LUA_INTERFACE_DEF (mimepart, get_header_full),
LUA_INTERFACE_DEF (mimepart, get_header_count), LUA_INTERFACE_DEF (mimepart, get_header_count),
LUA_INTERFACE_DEF (mimepart, get_raw_headers),
LUA_INTERFACE_DEF (mimepart, is_image), LUA_INTERFACE_DEF (mimepart, is_image),
LUA_INTERFACE_DEF (mimepart, get_image), LUA_INTERFACE_DEF (mimepart, get_image),
LUA_INTERFACE_DEF (mimepart, is_archive), LUA_INTERFACE_DEF (mimepart, is_archive),
} }


if (ct->boundary.len > 0) { if (ct->boundary.len > 0) {
lua_pushstring (L, "charset");
lua_pushstring (L, "boundary");
lua_pushlstring (L, ct->boundary.begin, ct->boundary.len); lua_pushlstring (L, ct->boundary.begin, ct->boundary.len);
lua_settable (L, -3); lua_settable (L, -3);
} }
return lua_mimepart_get_header_common (L, RSPAMD_TASK_HEADER_PUSH_COUNT); return lua_mimepart_get_header_common (L, RSPAMD_TASK_HEADER_PUSH_COUNT);
} }


static gint
lua_mimepart_get_raw_headers (lua_State *L)
{
LUA_TRACE_POINT;
struct rspamd_mime_part *part = lua_check_mimepart (L);
struct rspamd_lua_text *t;

if (part) {
t = lua_newuserdata (L, sizeof (*t));
rspamd_lua_setclass (L, "rspamd{text}", -1);
t->start = part->raw_headers_str;
t->len = part->raw_headers_len;
t->flags = 0;
}
else {
return luaL_error (L, "invalid arguments");
}


return 1;
}

static gint static gint
lua_mimepart_is_image (lua_State * L) lua_mimepart_is_image (lua_State * L)
{ {

Loading…
Cancel
Save