]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] New URL filters in multimap 1317/head
authorAndrew Lewis <nerf@judo.za.org>
Fri, 6 Jan 2017 15:03:38 +0000 (17:03 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Fri, 6 Jan 2017 15:03:38 +0000 (17:03 +0200)
src/plugins/lua/multimap.lua

index 5b32343b719645e8a425d83072e9738f2d6d5ba2..7417a9fb322d4ea92673ddd1c573a34c4d279740 100644 (file)
@@ -116,6 +116,31 @@ local function apply_url_filter(task, filter, url, r)
     else
       return nil
     end
+  elseif filter == 'is_redirected' then
+    if url:is_redirected() then
+      return url:get_host()
+    else
+      return nil
+    end
+  elseif filter == 'is_obscured' then
+    if url:is_obscured() then
+      return url:get_host()
+    else
+      return nil
+    end
+  elseif filter == 'path' then
+    return url:get_path()
+  elseif filter == 'query' then
+    return url:get_query()
+  elseif string.find(filter, 'tag:') then
+    local tags = url:get_tags()
+    local want_tag = string.match(filter, 'tag:(.*)')
+    for _, t in ipairs(tags) do
+      if t == want_tag then
+        return url:get_host()
+      end
+    end
+    return nil
   elseif string.find(filter, 'tld:regexp:') then
     if not r['re_filter'] then
       local type,pat = string.match(filter, '(regexp:)(.+)')