From 1c38a75ca70f46969caeeda7d80903baf6037db1 Mon Sep 17 00:00:00 2001 From: Andrew Lewis Date: Thu, 19 Feb 2015 15:38:28 +0200 Subject: [PATCH] rbl.lua: Housekeeping --- src/plugins/lua/rbl.lua | 80 +++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 47 deletions(-) diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua index 792c92569..327bcb4b4 100644 --- a/src/plugins/lua/rbl.lua +++ b/src/plugins/lua/rbl.lua @@ -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 -- 2.39.5