From: Vsevolod Stakhov Date: Sat, 16 Aug 2014 18:41:15 +0000 (+0100) Subject: Set useful fields for addresses. X-Git-Tag: 0.7.0~171 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8632d14d4b43f2da3cfefdf76b211f4c3449a392;p=thirdparty%2Frspamd.git Set useful fields for addresses. --- diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index 84ef211be0..39b6a2041e 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -789,14 +789,29 @@ lua_push_internet_address (lua_State *L, InternetAddress *ia) return FALSE; #else InternetAddressMailbox *iamb; + const char *addr, *at; if (ia && INTERNET_ADDRESS_IS_MAILBOX (ia)) { lua_newtable (L); iamb = INTERNET_ADDRESS_MAILBOX (ia); - lua_set_table_index (L, "name", internet_address_get_name (ia)); - lua_set_table_index (L, "addr", - internet_address_mailbox_get_addr (iamb)); - return TRUE; + addr = internet_address_mailbox_get_addr (iamb); + if (addr) { + lua_set_table_index (L, "name", internet_address_get_name (ia)); + lua_set_table_index (L, "addr", addr); + /* Set optional fields */ + + at = strchr (addr, '@'); + if (at != NULL) { + lua_pushstring(L, "user"); + lua_pushlstring(L, addr, at - addr); + lua_settable (L, -3); + lua_pushstring(L, "domain"); + lua_pushstring(L, at + 1); + lua_settable (L, -3); + } + return TRUE; + } } + return FALSE; #endif }