diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-12-07 13:45:06 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-12-07 13:45:06 +0000 |
commit | f6f3c2dea862e0a503130a668f44152b77619a8e (patch) | |
tree | a17a465848ef00097af8c296ebb4b12cef58e1e3 /src | |
parent | 6dc4448d1430c625100053ccb6cdefa98fe894fe (diff) | |
download | rspamd-f6f3c2dea862e0a503130a668f44152b77619a8e.tar.gz rspamd-f6f3c2dea862e0a503130a668f44152b77619a8e.zip |
[Minor] Spf: Fix external relay detection
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/lua/spf.lua | 17 |
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, |