aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2019-12-07 13:45:06 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2019-12-07 13:45:06 +0000
commitf6f3c2dea862e0a503130a668f44152b77619a8e (patch)
treea17a465848ef00097af8c296ebb4b12cef58e1e3 /src
parent6dc4448d1430c625100053ccb6cdefa98fe894fe (diff)
downloadrspamd-f6f3c2dea862e0a503130a668f44152b77619a8e.tar.gz
rspamd-f6f3c2dea862e0a503130a668f44152b77619a8e.zip
[Minor] Spf: Fix external relay detection
Diffstat (limited to 'src')
-rw-r--r--src/plugins/lua/spf.lua17
1 files changed, 15 insertions, 2 deletions
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,