summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-06-13 19:06:16 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-06-13 19:06:16 +0100
commit9b8f8d728cebc0e0fe777f55d6d02cff9ea9e792 (patch)
treedd58114f954b46eea04b8bb6a47d2352ef2e94b0
parent78a21e8200a671d1ebf2b9572bbcfdfcd4fba151 (diff)
downloadrspamd-9b8f8d728cebc0e0fe777f55d6d02cff9ea9e792.tar.gz
rspamd-9b8f8d728cebc0e0fe777f55d6d02cff9ea9e792.zip
[Feature] Enable forced resolving for some lua plugins
Issue: #661 Reported by: @FelixSchwarz
-rw-r--r--src/plugins/lua/dmarc.lua9
-rw-r--r--src/plugins/lua/once_received.lua3
-rw-r--r--src/plugins/lua/rbl.lua23
3 files changed, 24 insertions, 11 deletions
diff --git a/src/plugins/lua/dmarc.lua b/src/plugins/lua/dmarc.lua
index 063142f24..cb65a6875 100644
--- a/src/plugins/lua/dmarc.lua
+++ b/src/plugins/lua/dmarc.lua
@@ -80,7 +80,8 @@ local function dmarc_callback(task)
task:get_resolver():resolve_txt({
task=task,
name = resolve_name,
- callback = dmarc_dns_cb})
+ callback = dmarc_dns_cb,
+ forced = true})
return
end
@@ -182,7 +183,8 @@ local function dmarc_callback(task)
task:get_resolver():resolve_txt({
task=task,
name = resolve_name,
- callback = dmarc_dns_cb})
+ callback = dmarc_dns_cb,
+ forced = true})
return
else
@@ -263,7 +265,8 @@ local function dmarc_callback(task)
task:get_resolver():resolve_txt({
task=task,
name = resolve_name,
- callback = dmarc_dns_cb})
+ callback = dmarc_dns_cb,
+ forced = true})
end
local opts = rspamd_config:get_all_opt('dmarc')
diff --git a/src/plugins/lua/once_received.lua b/src/plugins/lua/once_received.lua
index 341618429..63de22776 100644
--- a/src/plugins/lua/once_received.lua
+++ b/src/plugins/lua/once_received.lua
@@ -80,7 +80,8 @@ local function check_quantity_received (task)
if (not hn or hn == 'unknown') and task_ip and task_ip:is_valid() then
task:get_resolver():resolve_ptr({task = task,
name = task_ip:to_string(),
- callback = recv_dns_cb
+ callback = recv_dns_cb,
+ forced = true
})
return
end
diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index 91e20dc5b..2a0042019 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -147,7 +147,8 @@ local function rbl_cb (task)
task:get_resolver():resolve_a({task = task,
name = havegot['helo'] .. '.' .. rbl['rbl'],
callback = rbl_dns_cb,
- option = k})
+ option = k,
+ forced = true})
end)()
end
@@ -173,7 +174,8 @@ local function rbl_cb (task)
task:get_resolver():resolve_a({task = task,
name = d .. '.' .. rbl['rbl'],
callback = rbl_dns_cb,
- option = k})
+ option = k,
+ forced = true})
end
end)()
end
@@ -214,14 +216,16 @@ local function rbl_cb (task)
task:get_resolver():resolve_a({task = task,
name = domain .. '.' .. rbl['rbl'],
callback = rbl_dns_cb,
- option = k})
+ option = k,
+ forced = true})
end
else
for _, email in pairs(havegot['emails']) do
task:get_resolver():resolve_a({task = task,
name = email .. '.' .. rbl['rbl'],
callback = rbl_dns_cb,
- option = k})
+ option = k,
+ forced = true})
end
end
end)()
@@ -242,7 +246,8 @@ local function rbl_cb (task)
task:get_resolver():resolve_a({task = task,
name = havegot['rdns'] .. '.' .. rbl['rbl'],
callback = rbl_dns_cb,
- option = k})
+ option = k,
+ forced = true})
end)()
end
@@ -263,7 +268,8 @@ local function rbl_cb (task)
task:get_resolver():resolve_a({task = task,
name = ip_to_rbl(havegot['from'], rbl['rbl']),
callback = rbl_dns_cb,
- option = k})
+ option = k,
+ forced = true})
end
end)()
end
@@ -287,10 +293,13 @@ local function rbl_cb (task)
((rbl['exclude_private_ips'] and not rh['real_ip']:is_local()) or
not rbl['exclude_private_ips']) and ((rbl['exclude_local_ips'] and
not is_excluded_ip(rh['real_ip'])) or not rbl['exclude_local_ips']) then
+ -- Disable forced for received resolving, as we have no control on
+ -- those headers count
task:get_resolver():resolve_a({task = task,
name = ip_to_rbl(rh['real_ip'], rbl['rbl']),
callback = rbl_dns_cb,
- option = k})
+ option = k,
+ forced = false})
end
end
end