diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-06-22 21:34:25 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-06-22 21:34:25 +0100 |
commit | 4db13b5738ddcf46f68b4edf47742b3daffff548 (patch) | |
tree | 4ac059a95a590b343d42dbc8475db389b307a71f | |
parent | 9448e7c5e4e31324b57c29fd6beeb8de4e865255 (diff) | |
parent | fed0ba49bcda50fa96041a7eca290deaeecb8f0d (diff) | |
download | rspamd-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.conf | 2 | ||||
-rw-r--r-- | doc/markdown/modules/rbl.md | 5 | ||||
-rw-r--r-- | src/plugins/lua/rbl.lua | 17 |
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 |