Browse Source

[Minor] Lua_mimepart: Add `get_enclosing_boundary` method

tags/3.2
Vsevolod Stakhov 2 years ago
parent
commit
15e41fc12f
1 changed files with 32 additions and 0 deletions
  1. 32
    0
      src/lua/lua_mimepart.c

+ 32
- 0
src/lua/lua_mimepart.c View File

@@ -468,6 +468,14 @@ LUA_FUNCTION_DEF (mimepart, is_message);
*/
LUA_FUNCTION_DEF (mimepart, get_boundary);

/***
* @method mime_part:get_enclosing_boundary()
* Returns an enclosing boundary for a part even for multiparts. For normal parts
* this method is identical to `get_boundary`
* @return {string} boundary value or nil
*/
LUA_FUNCTION_DEF (mimepart, get_enclosing_boundary);

/***
* @method mime_part:get_children()
* Returns rspamd_mimepart table of part's childer. Returns nil if mime part is not multipart
@@ -569,6 +577,7 @@ static const struct luaL_reg mimepartlib_m[] = {
LUA_INTERFACE_DEF (mimepart, get_cte),
LUA_INTERFACE_DEF (mimepart, get_filename),
LUA_INTERFACE_DEF (mimepart, get_boundary),
LUA_INTERFACE_DEF (mimepart, get_enclosing_boundary),
LUA_INTERFACE_DEF (mimepart, get_header),
LUA_INTERFACE_DEF (mimepart, get_header_raw),
LUA_INTERFACE_DEF (mimepart, get_header_full),
@@ -1639,6 +1648,29 @@ lua_mimepart_get_boundary (lua_State * L)
return 1;
}

static gint
lua_mimepart_get_enclosing_boundary (lua_State * L)
{
LUA_TRACE_POINT;
struct rspamd_mime_part *part = lua_check_mimepart (L), *parent;

if (part == NULL) {
return luaL_error (L, "invalid arguments");
}

parent = part->parent_part;

if (!parent || !IS_PART_MULTIPART (parent)) {
lua_pushnil (L);
}
else {
lua_pushlstring (L, parent->specific.mp->boundary.begin,
parent->specific.mp->boundary.len);
}

return 1;
}

static gint
lua_mimepart_get_header_common (lua_State *L, enum rspamd_lua_task_header_type how)
{

Loading…
Cancel
Save