]> source.dussan.org Git - rspamd.git/commitdiff
Add is_obscured method for lua url API
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 20 Nov 2015 13:52:08 +0000 (13:52 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 20 Nov 2015 13:52:08 +0000 (13:52 +0000)
src/lua/lua_url.c

index 8a9c90216d102d1b894429a6941acc52659892ac..c503f11463c48e10607cdfc9c5a920c42487145a 100644 (file)
@@ -57,6 +57,7 @@ LUA_FUNCTION_DEF (url, get_text);
 LUA_FUNCTION_DEF (url, get_tld);
 LUA_FUNCTION_DEF (url, to_table);
 LUA_FUNCTION_DEF (url, is_phished);
+LUA_FUNCTION_DEF (url, is_obscured);
 LUA_FUNCTION_DEF (url, get_phished);
 LUA_FUNCTION_DEF (url, create);
 LUA_FUNCTION_DEF (url, all);
@@ -73,6 +74,7 @@ static const struct luaL_reg urllib_m[] = {
        LUA_INTERFACE_DEF (url, get_tld),
        LUA_INTERFACE_DEF (url, to_table),
        LUA_INTERFACE_DEF (url, is_phished),
+       LUA_INTERFACE_DEF (url, is_obscured),
        LUA_INTERFACE_DEF (url, get_phished),
        {"__tostring", lua_url_get_text},
        {NULL, NULL}
@@ -270,6 +272,26 @@ lua_url_is_phished (lua_State *L)
        return 1;
 }
 
+/***
+ * @method url:is_obscured()
+ * Check whether URL is treated as obscured or obfusicated (e.g. numbers in IP address or other hacks)
+ * @return {boolean} `true` if URL is obscured
+ */
+static gint
+lua_url_is_obscured (lua_State *L)
+{
+       struct rspamd_lua_url *url = lua_check_url (L, 1);
+
+       if (url != NULL) {
+               lua_pushboolean (L, url->url->flags & RSPAMD_URL_FLAG_OBSCURED);
+       }
+       else {
+               lua_pushnil (L);
+       }
+
+       return 1;
+}
+
 /***
  * @method url:get_phished()
  * Get another URL that pretends to be this URL (e.g. used in phishing)