diff options
author | Jan Smutny <js@excello.cz> | 2020-04-19 23:32:30 +0200 |
---|---|---|
committer | Jan Smutny <js@excello.cz> | 2020-04-20 22:57:05 +0200 |
commit | ebfde825561e434cb7d9a9da5bbe2398290030c2 (patch) | |
tree | 7f29eb7d597548658c0628aa8d6719072813f42a /src/lua/lua_task.c | |
parent | 7457d466d9e0d8186e1141f89b6265c13b7140ea (diff) | |
download | rspamd-ebfde825561e434cb7d9a9da5bbe2398290030c2.tar.gz rspamd-ebfde825561e434cb7d9a9da5bbe2398290030c2.zip |
[Feature] extend lua api
add new value accessible by key 'raw' to the table returned by util:parse_mail_address and task:get_from
Diffstat (limited to 'src/lua/lua_task.c')
-rw-r--r-- | src/lua/lua_task.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index b891d7d99..8bd7077c8 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -515,6 +515,7 @@ LUA_FUNCTION_DEF (task, has_from); * @method task:get_from([type]) * Return SMTP or MIME sender for a task. This function returns an internet address which one is a table with the following structure: * + * - `raw` - the original value without any processing * - `name` - name of internet address in UTF8, e.g. for `Vsevolod Stakhov <blah@foo.com>` it returns `Vsevolod Stakhov` * - `addr` - address part of the address * - `user` - user part (if present) of the address, e.g. `blah` @@ -3310,8 +3311,18 @@ static void lua_push_email_address (lua_State *L, struct rspamd_email_address *addr) { if (addr) { - lua_createtable (L, 0, 4); + lua_createtable (L, 0, 5); + if (addr->raw_len > 0) { + lua_pushstring (L, "raw"); + lua_pushlstring (L, addr->raw, addr->raw_len); + lua_settable (L, -3); + } + else { + lua_pushstring (L, "raw"); + lua_pushstring (L, ""); + lua_settable (L, -3); + } if (addr->addr_len > 0) { lua_pushstring (L, "addr"); lua_pushlstring (L, addr->addr, addr->addr_len); |