]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Rules] OMOGRAPH_URL: Avoid extra calls for repeated urls
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 29 Jan 2019 13:21:20 +0000 (13:21 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 29 Jan 2019 13:21:20 +0000 (13:21 +0000)
rules/misc.lua

index 05d4af5d56d99e6d52d0a11e265f79ac66a304d0..1cc7bfc22982f820bc4a0f91848534f80e98dcf8 100644 (file)
@@ -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)