From: Vsevolod Stakhov Date: Sat, 7 Dec 2019 13:45:06 +0000 (+0000) Subject: [Minor] Spf: Fix external relay detection X-Git-Tag: 2.3~239 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f6f3c2dea862e0a503130a668f44152b77619a8e;p=rspamd.git [Minor] Spf: Fix external relay detection --- diff --git a/src/plugins/lua/spf.lua b/src/plugins/lua/spf.lua index f664661f9..10daa0d2b 100644 --- a/src/plugins/lua/spf.lua +++ b/src/plugins/lua/spf.lua @@ -93,8 +93,8 @@ local function spf_check_callback(task) -- We can use the next header as a source of IP address if rh[i + 1] then local nhdr = rh[i + 1] - lua_util.debugm(N, task, 'found external relay %s at received header %s -> %s', - local_config.external_relay, hdr, nhdr.real_ip) + lua_util.debugm(N, task, 'found external relay %s at received header number %s -> %s', + local_config.external_relay, i, nhdr.real_ip) if nhdr.real_ip then ip = nhdr.real_ip @@ -218,6 +218,19 @@ if local_config.whitelist then "radix", "SPF whitelist map") end +if local_config.external_relay then + local rspamd_ip = require "rspamd_ip" + local ip = rspamd_ip.from_string(local_config.external_relay) + + if not ip or not ip:is_valid() then + rspamd_logger.errx(rspamd_config, "invalid external relay IP: %s", + local_config.external_relay) + local_config.external_relay = nil + else + local_config.external_relay = ip + end +end + for _,sym in pairs(local_config.symbols) do rspamd_config:register_symbol{ name = sym,