Browse Source

[Feature] Multimap: Do not check files in office archives

tags/2.1
Vsevolod Stakhov 4 years ago
parent
commit
13a09de8ed
2 changed files with 19 additions and 1 deletions
  1. 2
    0
      lualib/lua_magic/init.lua
  2. 17
    1
      src/plugins/lua/multimap.lua

+ 2
- 0
lualib/lua_magic/init.lua View File

@@ -361,4 +361,6 @@ end
-- Rspamd checks 2 chunks at start and 1 chunk at the end
exports.chunk_size = 32768

exports.types = types

return exports

+ 17
- 1
src/plugins/lua/multimap.lua View File

@@ -868,8 +868,24 @@ local function multimap_callback(task, rule)
return p:is_attachment() or (not p:is_text()) and (not p:is_multipart())
end

local function filter_archive(p)
local ext = p:get_detected_ext()
local det_type = 'unknown'

if ext then
local lua_magic_types = require "lua_magic/types"
local det_t = lua_magic_types[ext]

if det_t then
det_type = det_t.type
end
end

return p:is_archive() and det_type == 'archive' and not rule.skip_archives
end

for _,p in fun.iter(fun.filter(filter_parts, parts)) do
if p:is_archive() and not rule['skip_archives'] then
if filter_archive(p) then
local fnames = p:get_archive():get_files()

for _,fn in ipairs(fnames) do

Loading…
Cancel
Save