From: Vsevolod Stakhov Date: Tue, 29 Jan 2019 13:21:20 +0000 (+0000) Subject: [Rules] OMOGRAPH_URL: Avoid extra calls for repeated urls X-Git-Tag: 1.9.0~239 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fb2c14b1e1eeb14b1d773b9a00f2ddceb8686327;p=thirdparty%2Frspamd.git [Rules] OMOGRAPH_URL: Avoid extra calls for repeated urls --- diff --git a/rules/misc.lua b/rules/misc.lua index 05d4af5d56..1cc7bfc229 100644 --- a/rules/misc.lua +++ b/rules/misc.lua @@ -373,26 +373,31 @@ rspamd_config.OMOGRAPH_URL = { local bad_omographs = 0 local single_bad_omograps = 0 local bad_urls = {} + local seen = {} fun.each(function(u) if u:is_phished() then + local h1 = u:get_host() local h2 = u:get_phished():get_host() if h1 and h2 then - if util.is_utf_spoofed(h1, h2) then - table.insert(bad_urls, string.format('%s->%s', h1, h2)) + local selt = string.format('%s->%s', h1, h2) + if not seen[selt] and util.is_utf_spoofed(h1, h2) then + bad_urls[#bad_urls + 1] = selt bad_omographs = bad_omographs + 1 end + seen[selt] = true end end if not u:is_html_displayed() then local h = u:get_tld() if h then - if util.is_utf_spoofed(h) then - table.insert(bad_urls, string.format('%s', h)) + if not seen[h] and util.is_utf_spoofed(h) then + bad_urls[#bad_urls + 1] = h single_bad_omograps = single_bad_omograps + 1 end + seen[h] = true end end end, urls)