aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua/lua_task.c
diff options
context:
space:
mode:
authorJan Smutny <js@excello.cz>2020-04-19 23:32:30 +0200
committerJan Smutny <js@excello.cz>2020-04-20 22:57:05 +0200
commitebfde825561e434cb7d9a9da5bbe2398290030c2 (patch)
tree7f29eb7d597548658c0628aa8d6719072813f42a /src/lua/lua_task.c
parent7457d466d9e0d8186e1141f89b6265c13b7140ea (diff)
downloadrspamd-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.c13
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);