]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Multimap: Also check detected charset when do filename checks
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 2 Aug 2019 16:42:27 +0000 (17:42 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 2 Aug 2019 16:42:27 +0000 (17:42 +0100)
src/plugins/lua/multimap.lua

index b87636bd0e275f23e5ba30e3fd1aaf56af5c5880..38052f6f05dcb859d3a31dc43a0c737d072a03f2 100644 (file)
@@ -865,8 +865,25 @@ local function multimap_callback(task, rule)
         if fn then
           match_filename(rule, fn)
         end
+        -- Also deal with detected content type
+        local dtype,dsubtype = p:get_detected_type()
+        if not rule.skip_detected and (dtype and dsubtype) then
+          local detected_ct = string.format('%s/%s', dtype, dsubtype)
+
+          if detected_ct then
+            local lua_mime = require "lua_mime"
+
+            local ext = lua_mime.reversed_extensions_map[detected_ct]
+
+            if ext then
+              local fake_fname = string.format('detected.%s', ext)
+              match_filename(rule, fake_fname)
+            end
+          end
+        end
       end
     end,
+
     content = function()
       match_content(rule)
     end,