Quellcode durchsuchen

[Minor] Rbl: Fix resolve ip options insertion

tags/2.3
Vsevolod Stakhov vor 4 Jahren
Ursprung
Commit
f3e06973f0
1 geänderte Dateien mit 18 neuen und 9 gelöschten Zeilen
  1. 18
    9
      src/plugins/lua/rbl.lua

+ 18
- 9
src/plugins/lua/rbl.lua Datei anzeigen

@@ -324,16 +324,21 @@ local function gen_rbl_callback(rule)

if requests_table[req] then
-- Duplicate request
if forced and not requests_table[req].forced then
requests_table[req].forced = true
local nreq = requests_table[req]
if forced and not nreq.forced then
nreq.forced = true
end

return true,nreq -- Duplicate
else
local nreq

local resolve_ip = rule.resolve_ip and not is_ip
if rule.process_script then
local processed = rule.process_script(req, rule.rbl, task, resolve_ip)

if processed then
local nreq = {
nreq = {
forced = forced,
n = processed,
orig = req_str,
@@ -356,7 +361,7 @@ local function gen_rbl_callback(rule)
to_resolve = orign
end

local nreq = {
nreq = {
forced = forced,
n = to_resolve,
orig = req_str,
@@ -365,7 +370,7 @@ local function gen_rbl_callback(rule)
}
requests_table[req] = nreq
end
return false, nreq
end
end

@@ -712,15 +717,19 @@ local function gen_rbl_callback(rule)
local nresolved = 0

-- This is called when doing resolve_ip phase...
local function gen_rbl_ip_dns_callback(_)
local function gen_rbl_ip_dns_callback(orig_resolve_table_elt)
return function(_, _, results, err)
if not err then
for _,dns_res in ipairs(results) do
-- Check if we have rspamd{ip} userdata
if type(dns_res) == 'userdata' then
-- Add result as an actual RBL request
add_dns_request(task, dns_res, false, true,
resolved_req)
local dup,nreq = add_dns_request(task, dns_res, false, true,
resolved_req, orig_resolve_table_elt.what)
-- Add original name
if not dup then
nreq.orig = nreq.orig .. ':' .. orig_resolve_table_elt.n
end
end
end
end
@@ -759,7 +768,7 @@ local function gen_rbl_callback(rule)
if r:resolve_a({
task = task,
name = req.n,
callback = gen_rbl_ip_dns_callback(req.orig),
callback = gen_rbl_ip_dns_callback(req),
forced = req.forced
}) then
nresolved = nresolved + 1

Laden…
Abbrechen
Speichern