summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2015-02-14 10:37:53 +0200
committerAndrew Lewis <nerf@judo.za.org>2015-02-14 10:57:18 +0200
commitbab9f14abf2c2201a51c3f9e5932403095926c30 (patch)
tree201b2eca4070c824d9af07a7be9b215f4de3660a /src/plugins
parentec25baf156342780326fefc7950e00dde45d0a3d (diff)
downloadrspamd-bab9f14abf2c2201a51c3f9e5932403095926c30.tar.gz
rspamd-bab9f14abf2c2201a51c3f9e5932403095926c30.zip
Make ignoring private IP space configurable; avoid changing plugin default behaviour
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/lua/rbl.lua19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index ef48428b3..6950ab7cb 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -199,7 +199,8 @@ local function rbl_cb (task)
end
if not havegot['from'] then
havegot['from'] = task:get_from_ip()
- if not havegot['from']:is_valid() or is_private_ip(havegot['from']) then
+ if not havegot['from']:is_valid() or
+ (rbl['exclude_private_ips'] and is_private_ip(havegot['from'])) then
notgot['from'] = true
return
end
@@ -227,10 +228,11 @@ local function rbl_cb (task)
for _,rh in ipairs(havegot['received']) do
if rh['real_ip'] and rh['real_ip']:is_valid() then
if ((rh['real_ip']:get_version() == 6 and rbl['ipv6']) or
- (rh['real_ip']:get_version() == 4 and rbl['ipv4']))
- and not is_private_ip(rh['real_ip']) then
- task:get_resolver():resolve_a(task:get_session(), task:get_mempool(),
- ip_to_rbl(rh['real_ip'], rbl['rbl']), rbl_dns_cb, k)
+ (rh['real_ip']:get_version() == 4 and rbl['ipv4'])) and
+ ((rbl['exclude_private_ips'] and not is_private_ip(rh['real_ip'])) or
+ not rbl['exclude_private_ips']) then
+ task:get_resolver():resolve_a(task:get_session(), task:get_mempool(),
+ ip_to_rbl(rh['real_ip'], rbl['rbl']), rbl_dns_cb, k)
end
end
end
@@ -252,6 +254,7 @@ if type(rspamd_config.get_api_version) ~= 'nil' then
rspamd_config:register_module_option('rbl', 'default_helo', 'string')
rspamd_config:register_module_option('rbl', 'default_unknown', 'string')
rspamd_config:register_module_option('rbl', 'default_exclude_users', 'string')
+ rspamd_config:register_module_option('rbl', 'default_exclude_private_ips', 'string')
end
end
@@ -284,8 +287,12 @@ end
if(opts['default_exclude_users'] == nil) then
opts['default_exclude_users'] = false
end
+if(opts['default_exclude_private_ips'] == nil) then
+ opts['default_exclude_private_ips'] = false
+end
+
for key,rbl in pairs(opts['rbls']) do
- local o = { "ipv4", "ipv6", "from", "received", "unknown", "rdns", "helo", "exclude_users" }
+ local o = { "ipv4", "ipv6", "from", "received", "unknown", "rdns", "helo", "exclude_users", "exclude_private_ips" }
for i=1,table.maxn(o) do
if(rbl[o[i]] == nil) then
rbl[o[i]] = opts['default_' .. o[i]]