summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/metrics.conf6
-rw-r--r--conf/modules.conf18
-rw-r--r--src/plugins/lua/rbl.lua4
3 files changed, 24 insertions, 4 deletions
diff --git a/conf/metrics.conf b/conf/metrics.conf
index 088d6aaca..520f05a74 100644
--- a/conf/metrics.conf
+++ b/conf/metrics.conf
@@ -322,6 +322,12 @@ metric {
description = "One received header with 'bad' patterns inside";
name = "ONCE_RECEIVED_STRICT";
}
+
+ symbol { name = "RCVD_IN_DNSWL"; weight = 0.0; description = "Sender listed at http://www.dnswl.org"; }
+ symbol { name = "RCVD_IN_DNSWL_LOW"; weight = -0.1; description = "Sender listed at http://www.dnswl.org, low trust"; }
+ symbol { name = "RCVD_IN_DNSWL_MED"; weight = -1.0; description = "Sender listed at http://www.dnswl.org, medium trust"; }
+ symbol { name = "RCVD_IN_DNSWL_HI"; weight = -5.0; description = "Sender listed at http://www.dnswl.org, high trust"; }
+
symbol { name = "RBL_SPAMHAUS"; weight = 0.0; description = "From address is listed in zen"; }
symbol { name = "RBL_SPAMHAUS_SBL"; weight = 2.0; description = "From address is listed in zen sbl"; }
symbol { name = "RBL_SPAMHAUS_CSS"; weight = 2.0; description = "From address is listed in zen css"; }
diff --git a/conf/modules.conf b/conf/modules.conf
index 4ad8fc88c..0640def55 100644
--- a/conf/modules.conf
+++ b/conf/modules.conf
@@ -83,8 +83,7 @@ surbl {
}
}
rbl {
-
- rbls {
+ rbls {
spamhaus {
symbol = "RBL_SPAMHAUS";
@@ -145,6 +144,21 @@ rbl {
RBL_SEM = "127.0.0.2";
}
}
+
+ dnswl {
+ symbol = "RCVD_IN_DNSWL";
+ rbl = "list.dnswl.org";
+ ipv4 = true;
+ ipv6 = false;
+ received = false;
+ unknown = true;
+ returncodes {
+ RCVD_IN_DNSWL_LOW = "127.0.*.1";
+ RCVD_IN_DNSWL_MED = "127.0.*.2";
+ RCVD_IN_DNSWL_HI = "127.0.*.3";
+ }
+ }
+
}
}
diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index bf043e19e..da52c0fba 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -25,14 +25,14 @@ local function rbl_cb (task)
local foundrc = false
for s,i in pairs(thisrbl['returncodes']) do
if type(i) == 'string' then
- if i == ipstr then
+ if (string.find(ipstr, i)) then
foundrc = true
task:insert_result(s, 1)
break
end
elseif type(i) == 'table' then
for _,v in pairs(i) do
- if v == ipstr then
+ if (string.find(ipstr, v)) then
foundrc = true
task:insert_result(s, 1)
break