Browse Source

rbl.lua: Housekeeping

tags/0.9.0
Andrew Lewis 9 years ago
parent
commit
a55253e2c6
1 changed files with 33 additions and 47 deletions
  1. 33
    47
      src/plugins/lua/rbl.lua

+ 33
- 47
src/plugins/lua/rbl.lua View File

@@ -33,13 +33,13 @@ local rbls = {}
local local_exclusions = nil
local private_ips = nil

local rspamd_logger = require "rspamd_logger"
local rspamd_ip = require "rspamd_ip"
local rspamd_logger = require 'rspamd_logger'
local rspamd_ip = require 'rspamd_ip'

local function validate_dns(lstr)
for v in lstr:gmatch("[^%.]+") do
if not v:match("^[%w-]+$") or v:len() > 63
or v:match("^-") or v:match("-$") then
for v in lstr:gmatch('[^%.]+') do
if not v:match('^[%w-]+$') or v:len() > 63
or v:match('^-') or v:match('-$') then
return false
end
end
@@ -61,7 +61,7 @@ local function is_excluded_ip(rip)
end

local function ip_to_rbl(ip, rbl)
return table.concat(ip:inversed_str_octets(), ".") .. '.' .. rbl
return table.concat(ip:inversed_str_octets(), '.') .. '.' .. rbl
end

local function rbl_cb (task)
@@ -85,14 +85,14 @@ local function rbl_cb (task)
local foundrc = false
for s,i in pairs(thisrbl['returncodes']) do
if type(i) == 'string' then
if string.find(ipstr, "^" .. i .. "$") 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 string.find(ipstr, "^" .. v .. "$") then
if string.find(ipstr, '^' .. v .. '$') then
foundrc = true
task:insert_result(s, 1)
break
@@ -302,39 +302,29 @@ local opts = rspamd_config:get_all_opt('rbl')
if not opts or type(opts) ~= 'table' then
return
end
if(opts['default_ipv4'] == nil) then
opts['default_ipv4'] = true
end
if(opts['default_ipv6'] == nil) then
opts['default_ipv6'] = false
end
if(opts['default_received'] == nil) then
opts['default_received'] = true
end
if(opts['default_from'] == nil) then
opts['default_from'] = false
end
if(opts['default_unknown'] == nil) then
opts['default_unknown'] = false
end
if(opts['default_rdns'] == nil) then
opts['default_rdns'] = false
end
if(opts['default_helo'] == nil) then
opts['default_helo'] = false
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'] = true
end
if(opts['default_exclude_local'] == nil) then
opts['default_exclude_local'] = true
end
if(opts['default_emails'] == nil) then
opts['default_emails'] = false

-- Plugin defaults should not be changed - override these in config
-- New defaults should not alter behaviour
default_defaults = {
['default_ipv4'] = {[1] = true, [2] = 'ipv4'},
['default_ipv6'] = {[1] = false, [2] = 'ipv6'},
['default_received'] = {[1] = true, [2] = 'received'},
['default_from'] = {[1] = false, [2] = 'from'},
['default_unknown'] = {[1] = false, [2] = 'unknown'},
['default_rdns'] = {[1] = false, [2] = 'rdns'},
['default_helo'] = {[1] = false, [2] = 'helo'},
['default_emails'] = {[1] = false, [2] = 'emails'},
['default_exclude_users'] = {[1] = false, [2] = 'exclude_users'},
['default_exclude_private_ips'] = {[1] = true, [2] = 'exclude_private_ips'},
['default_exclude_users'] = {[1] = false, [2] = 'exclude_users'},
['default_exclude_local'] = {[1] = true, [2] = 'exclude_local'},
}
for default, default_v in pairs(default_defaults) do
if opts[default] == nil then
opts[default] = default_v[1]
end
end

if(opts['local_exclude_ip_map'] ~= nil) then
local_exclusions = rspamd_config:add_radix_map(opts['local_exclude_ip_map'])
end
@@ -343,13 +333,9 @@ if(opts['private_ips'] ~= nil) then
end

for key,rbl in pairs(opts['rbls']) do
local o = {
"ipv4", "ipv6", "from", "received", "unknown", "rdns", "helo", "exclude_users",
"exclude_private_ips", "exclude_local", "emails"
}
for i=1,table.maxn(o) do
if(rbl[o[i]] == nil) then
rbl[o[i]] = opts['default_' .. o[i]]
for default, default_v in pairs(default_defaults) do
if(rbl[default_v[2]] == nil) then
rbl[default_v[2]] = opts[default]
end
end
if type(rbl['returncodes']) == 'table' then

Loading…
Cancel
Save