aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLyuben Bahtarliev <>2023-09-12 00:26:59 +0300
committerLyuben Bahtarliev <>2023-09-12 23:36:40 +0300
commit4824b17181d300954751b84272543ece4b81e9a7 (patch)
tree8ffea086093d7152c47ac674539481e855880043
parent5bb1ce5ee2cb9ef383e6bdc82adfaafd058e925b (diff)
downloadrspamd-4824b17181d300954751b84272543ece4b81e9a7.tar.gz
rspamd-4824b17181d300954751b84272543ece4b81e9a7.zip
[Feature] Add ICAP Content-Type and Filename from TODO List. Simplify changes. Remove unnecessary debug message.
-rw-r--r--lualib/lua_scanners/icap.lua12
-rw-r--r--src/plugins/lua/external_services.lua11
2 files changed, 9 insertions, 14 deletions
diff --git a/lualib/lua_scanners/icap.lua b/lualib/lua_scanners/icap.lua
index 042ce1e98..59d2caa4a 100644
--- a/lualib/lua_scanners/icap.lua
+++ b/lualib/lua_scanners/icap.lua
@@ -241,13 +241,15 @@ local function icap_check(task, content, digest, rule, maybe_part)
local function get_req_headers()
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])
-
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
diff --git a/src/plugins/lua/external_services.lua b/src/plugins/lua/external_services.lua
index 98a0a6d93..e299d9faa 100644
--- a/src/plugins/lua/external_services.lua
+++ b/src/plugins/lua/external_services.lua
@@ -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