aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-06-22 21:34:25 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-06-22 21:34:25 +0100
commit4db13b5738ddcf46f68b4edf47742b3daffff548 (patch)
tree4ac059a95a590b343d42dbc8475db389b307a71f
parent9448e7c5e4e31324b57c29fd6beeb8de4e865255 (diff)
parentfed0ba49bcda50fa96041a7eca290deaeecb8f0d (diff)
downloadrspamd-4db13b5738ddcf46f68b4edf47742b3daffff548.tar.gz
rspamd-4db13b5738ddcf46f68b4edf47742b3daffff548.zip
Merge pull request #301 from fatalbanana/rspamd-0.9
Rspamd 0.9: Don't use RWL_MAILSPIKE_POSSIBLE or DNSWL_BLOCKED for whitelisting
-rw-r--r--conf/modules.conf2
-rw-r--r--doc/markdown/modules/rbl.md5
-rw-r--r--src/plugins/lua/rbl.lua17
3 files changed, 23 insertions, 1 deletions
diff --git a/conf/modules.conf b/conf/modules.conf
index ad875ece3..6f4e12e2c 100644
--- a/conf/modules.conf
+++ b/conf/modules.conf
@@ -169,6 +169,7 @@ rbl {
mailspike_wl {
rbl = "wl.mailspike.net";
is_whitelist = true;
+ whitelist_exception = "RWL_MAILSPIKE_POSSIBLE";
returncodes {
RWL_MAILSPIKE_POSSIBLE = "127.0.0.17";
RWL_MAILSPIKE_GOOD = "127.0.0.18";
@@ -226,6 +227,7 @@ rbl {
rbl = "list.dnswl.org";
ipv6 = true;
is_whitelist = true;
+ whitelist_exception = "DNSWL_BLOCKED";
returncodes {
RCVD_IN_DNSWL_NONE = "127.0.%d+.0";
RCVD_IN_DNSWL_LOW = "127.0.%d+.1";
diff --git a/doc/markdown/modules/rbl.md b/doc/markdown/modules/rbl.md
index 33c3a4c18..b5f797fd3 100644
--- a/doc/markdown/modules/rbl.md
+++ b/doc/markdown/modules/rbl.md
@@ -105,3 +105,8 @@ an_rbl {
}
~~~
+The following extra settings are valid in the RBL subsection:
+
+- whitelist_exception
+
+(For whitelists) - Symbols named as parameters for this setting will not be used for neutralising blacklists (set this multiple times to add multiple exceptions).
diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index eddb4c77b..6a4d5024c 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -353,7 +353,22 @@ for key,rbl in pairs(opts['rbls']) do
if type(rspamd_config.get_api_version) ~= 'nil' then
rspamd_config:register_virtual_symbol(s, 1)
if(rbl['is_whitelist']) then
- table.insert(white_symbols, s)
+ if type(rbl['whitelist_exception']) == 'string' then
+ if (rbl['whitelist_exception'] ~= s) then
+ table.insert(white_symbols, s)
+ end
+ elseif type(rbl['whitelist_exception']) == 'table' then
+ local foundException = false
+ for _, e in pairs(rbl['whitelist_exception']) do
+ if e == s then
+ foundException = true
+ break
+ end
+ end
+ if not foundException then
+ table.insert(white_symbols, s)
+ end
+ end
else
table.insert(black_symbols, s)
end