瀏覽代碼

[Feature] Export visible part of url to lua

Export visible part of url to lua
tags/1.9.0
Miecio Za 5 年之前
父節點
當前提交
add9595913
共有 3 個文件被更改,包括 31 次插入0 次删除
  1. 6
    0
      src/libserver/html.c
  2. 2
    0
      src/libserver/url.h
  3. 23
    0
      src/lua/lua_url.c

+ 6
- 0
src/libserver/html.c 查看文件

@@ -2373,6 +2373,12 @@ rspamd_html_check_displayed_url (rspamd_mempool_t *pool,
return;
}

gint visible_part_len = dest->len - href_offset;
url->visible_part = rspamd_mempool_alloc0(pool, visible_part_len +1);
url->visible_partlen = visible_part_len;
gchar *visible_part = g_strndup(dest->data + href_offset, visible_part_len);
g_stpcpy(url->visible_part, visible_part);

rspamd_html_url_is_phished (pool, url,
dest->data + href_offset,
dest->len - href_offset,

+ 2
- 0
src/libserver/url.h 查看文件

@@ -48,6 +48,7 @@ struct rspamd_url {
gchar *fragment;
gchar *surbl;
gchar *tld;
gchar *visible_part;

struct rspamd_url *phished_url;

@@ -61,6 +62,7 @@ struct rspamd_url {
guint tldlen;
guint urllen;
guint rawlen;
guint visible_partlen;

enum rspamd_url_flags flags;
guint count;

+ 23
- 0
src/lua/lua_url.c 查看文件

@@ -63,6 +63,7 @@ LUA_FUNCTION_DEF (url, get_tag);
LUA_FUNCTION_DEF (url, get_count);
LUA_FUNCTION_DEF (url, get_tags);
LUA_FUNCTION_DEF (url, add_tag);
LUA_FUNCTION_DEF (url, get_visible);
LUA_FUNCTION_DEF (url, create);
LUA_FUNCTION_DEF (url, init);
LUA_FUNCTION_DEF (url, all);
@@ -89,6 +90,7 @@ static const struct luaL_reg urllib_m[] = {
LUA_INTERFACE_DEF (url, get_tag),
LUA_INTERFACE_DEF (url, get_tags),
LUA_INTERFACE_DEF (url, add_tag),
LUA_INTERFACE_DEF (url, get_visible),
LUA_INTERFACE_DEF (url, get_count),
LUA_INTERFACE_DEF (url, get_flags),
{"get_redirected", lua_url_get_phished},
@@ -650,6 +652,27 @@ lua_url_get_count (lua_State *L)
return 1;
}

/***
* @method url:get_visible()
* Get visible part of the url with html tags stripped
* @return {string} url string
*/
static gint
lua_url_get_visible (lua_State *L)
{
LUA_TRACE_POINT;
struct rspamd_lua_url *url = lua_check_url (L, 1);

if (url != NULL) {
lua_pushlstring (L, url->url->visible_part, url->url->visible_partlen);
}
else {
lua_pushnil (L);
}

return 1;
}

/***
* @method url:to_table()
* Return url as a table with the following fields:

Loading…
取消
儲存