From 334f20997377b3e6e1aa126446aa536a96e13b41 Mon Sep 17 00:00:00 2001 From: Dhawal Arora Date: Fri, 24 Apr 2015 10:50:53 +0530 Subject: minor syntax changes and pushed rspamd{url} to stack --- src/lua/lua_url.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/lua/lua_url.c b/src/lua/lua_url.c index 5c6eb4135..24658f1bc 100644 --- a/src/lua/lua_url.c +++ b/src/lua/lua_url.c @@ -375,31 +375,37 @@ static gint lua_url_all (lua_State *L) { struct rspamd_url *url; + struct rspamd_lua_url *lua_url; rspamd_mempool_t *pool = rspamd_lua_check_mempool (L, 1); const gchar *text,*end; - gint length,i; + gint i = 1; + size_t length; const gchar **pos; if (pool == NULL) { lua_pushnil (L); } else { - text = luaL_checkstring (L, 2); + text = luaL_checklstring (L, 2, &length); if (text != NULL) { - length = strlen(text); - *pos=text; - end=text+length; - lua_newtable(L); - while(*pos<=end){ + *pos = text; + end = text + length; + lua_newtable (L); + + while (*pos <= end) { url = rspamd_url_get_next (pool, text, pos, NULL); - if (url!=NULL) { - lua_pushinteger (L, i); + if (url != NULL) { + lua_url = lua_newuserdata (L, sizeof (struct rspamd_lua_url)); + rspamd_lua_setclass (L, "rspamd{url}", -1); + lua_url->url = url; + lua_pushinteger (L, i++); lua_pushlstring (L, url->string, url->urllen); lua_settable (L, -3); } - i++; + else + break; } } -- cgit v1.2.3