From: Dhawal Arora Date: Fri, 24 Apr 2015 05:20:53 +0000 (+0530) Subject: minor syntax changes and pushed rspamd{url} to stack X-Git-Tag: 0.9.0~152^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=334f20997377b3e6e1aa126446aa536a96e13b41;p=thirdparty%2Frspamd.git minor syntax changes and pushed rspamd{url} to stack --- diff --git a/src/lua/lua_url.c b/src/lua/lua_url.c index 5c6eb41354..24658f1bc2 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; } }