commit d04d3d9: [Rework] add alias util:parse_addr for util:parse_mail_address

Jan Smutny js at excello.cz
Fri Apr 17 15:35:11 UTC 2020


Author: Jan Smutny
Date: 2020-04-17 15:28:37 +0200
URL: https://github.com/rspamd/rspamd/commit/d04d3d983dfce9a1e00cdbceaa3b4439432c4a98

[Rework] add alias util:parse_addr for util:parse_mail_address

---
 src/lua/lua_util.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c
index d2efc9cb2..e7f18db2b 100644
--- a/src/lua/lua_util.c
+++ b/src/lua/lua_util.c
@@ -651,6 +651,7 @@ static const struct luaL_reg utillib_f[] = {
 	LUA_INTERFACE_DEF (util, humanize_number),
 	LUA_INTERFACE_DEF (util, get_tld),
 	LUA_INTERFACE_DEF (util, glob),
+	{"parse_addr", lua_util_parse_mail_address},
 	LUA_INTERFACE_DEF (util, parse_mail_address),
 	LUA_INTERFACE_DEF (util, strlen_utf8),
 	LUA_INTERFACE_DEF (util, lower_utf8),
@@ -1463,6 +1464,51 @@ lua_util_levenshtein_distance (lua_State *L)
 	return 1;
 }
 
+static gint
+lua_util_parse_addr (lua_State *L)
+{
+	LUA_TRACE_POINT;
+	GPtrArray *addrs;
+	gsize len;
+	const gchar *str = luaL_checklstring (L, 1, &len);
+	rspamd_mempool_t *pool;
+	gboolean own_pool = FALSE;
+
+	if (str) {
+
+		if (lua_type (L, 2) == LUA_TUSERDATA) {
+			pool = rspamd_lua_check_mempool (L, 2);
+
+			if (pool == NULL) {
+				return luaL_error (L, "invalid arguments");
+			}
+		}
+		else {
+			pool = rspamd_mempool_new (rspamd_mempool_suggest_size (),
+					"lua util", 0);
+			own_pool = TRUE;
+		}
+
+		addrs = rspamd_email_address_from_mime (pool, str, len, NULL);
+
+		if (addrs == NULL) {
+			lua_pushnil (L);
+		}
+		else {
+			lua_push_emails_address_list (L, addrs, 0);
+		}
+
+		if (own_pool) {
+			rspamd_mempool_delete (pool);
+		}
+	}
+	else {
+		lua_pushnil (L);
+	}
+
+	return 1;
+}
+
 static gint
 lua_util_fold_header (lua_State *L)
 {


More information about the Commits mailing list