Skip to content

Commit

Permalink
[Feature] Add ICAP Content-Type and Filename from TODO List. Simplify…
Browse files Browse the repository at this point in the history
… changes
  • Loading branch information
Lyuben Bahtarliev committed Sep 11, 2023
1 parent 5bb1ce5 commit 1d9498a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 12 deletions.
11 changes: 8 additions & 3 deletions lualib/lua_scanners/icap.lua
Expand Up @@ -242,12 +242,17 @@ local function icap_check(task, content, digest, rule, maybe_part)

local in_client_ip = task:get_from_ip()
lua_util.debugm(rule.name, task, 'URL: http://%s/%s | Content-Type: %s/%s',
in_client_ip, maybe_part[1], maybe_part[2], maybe_part[3])
in_client_ip, maybe_part:get_filename(), maybe_part:get_detected_type())

local req_hlen = 2
table.insert(req_headers, string.format('GET http://%s/%s HTTP/1.0\r\n', in_client_ip, maybe_part[1]))
table.insert(req_headers, string.format('Date: %s\r\n', rspamd_util.time_to_string(rspamd_util.get_time())))
table.insert(http_headers, string.format('Content-Type: %s/%s\r\n', maybe_part[2], maybe_part[3]))
if maybe_part then
table.insert(req_headers, string.format('GET http://%s/%s HTTP/1.0\r\n', in_client_ip, maybe_part:get_filename()))
table.insert(http_headers, string.format('Content-Type: %s/%s\r\n', maybe_part:get_detected_type()))
else
table.insert(req_headers, string.format('GET %s HTTP/1.0\r\n', rule.req_fake_url))
table.insert(http_headers, string.format('Content-Type: application/octet-stream\r\n'))
end
if rule.user_agent ~= "none" then
table.insert(req_headers, string.format("User-Agent: %s\r\n", rule.user_agent))
end
Expand Down
11 changes: 2 additions & 9 deletions src/plugins/lua/external_services.lua
Expand Up @@ -181,19 +181,12 @@ local function add_scanner_rule(sym, opts)
fun.each(function(p)
local content = p:get_content()
if content and #content > 0 then
local in_fname = p:get_filename()
local in_type, in_stype = p:get_detected_type()
local part_info = {in_fname,in_type,in_stype}
cfg.check(task, content, p:get_digest(), rule, part_info)
cfg.check(task, content, p:get_digest(), rule, p)
end
end, common.check_parts_match(task, rule))

else
local in_fname = "mail"
local in_type = "application"
local in_stype = "octet-stream"
local part_info = {in_fname,in_type,in_stype}
cfg.check(task, task:get_content(), task:get_digest(), rule, part_info)
cfg.check(task, task:get_content(), task:get_digest(), rule, nil)
end
end

Expand Down

0 comments on commit 1d9498a

Please sign in to comment.