]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Use universal redis definitions in rspamd plugins
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 28 May 2016 12:33:24 +0000 (13:33 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 28 May 2016 12:33:24 +0000 (13:33 +0100)
src/lua/global_functions.lua
src/plugins/lua/dmarc.lua
src/plugins/lua/greylist.lua
src/plugins/lua/ip_score.lua
src/plugins/lua/ratelimit.lua
src/plugins/lua/replies.lua

index 833832188e604e4aa47481f4410484e4cf7841c6..d2c742a9c1f377ccae5d4b28dc8b8b83ab642ab8 100644 (file)
@@ -6,6 +6,7 @@ function rspamd_parse_redis_server(module_name)
 
   local default_port = 6379
   local logger = require "rspamd_logger"
+  local upstream_list = require "rspamd_upstream_list"
 
   local function try_load_redis_servers(options)
     local key = options['servers']
index 924b020179d9f70b4546dd3dd9df680e1d136d7a..063142f24070882def816939af03404e988c23ea 100644 (file)
@@ -35,7 +35,6 @@ local symbols = {
   dkim_deny_symbol = 'R_DKIM_REJECT',
 }
 -- Default port for redis upstreams
-local default_port = 6379
 local upstreams = nil
 local dmarc_redis_key_prefix = "dmarc_"
 local dmarc_domain = nil
@@ -272,13 +271,9 @@ if not opts or type(opts) ~= 'table' then
   return
 end
 
-if not opts['servers'] then
-  rspamd_logger.infox(rspamd_config, 'no servers are specified for dmarc stats')
-else
-  upstreams = upstream_list.create(rspamd_config, opts['servers'], default_port)
-  if not upstreams then
-    rspamd_logger.errx(rspamd_config, 'cannot parse servers parameter')
-  end
+upstreams = rspamd_parse_redis_server('dmarc')
+if not upstreams then
+  rspamd_logger.errx(rspamd_config, 'cannot parse servers parameter')
 end
 
 if opts['key_prefix'] then
index 81d4604a05745b21ddf73101aee11457cfbc76d4..ebb9a4586e5b9ba193d55831a8983e8ffe4105db 100644 (file)
@@ -16,8 +16,6 @@ limitations under the License.
 
 -- A plugin that implements greylisting using redis
 
--- Default port for redis upstreams
-local default_port = 6379
 local upstreams
 local whitelisted_ip
 local settings = {
@@ -295,16 +293,13 @@ if opts then
     whitelisted_ip = rspamd_config:add_radix_map(opts['whitelisted_ip'],
       'Greylist whitelist ip map')
   end
-  if not opts['servers'] then
+
+  upstreams = rspamd_parse_redis_server('greylist')
+  if not upstreams then
     rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
   else
-    upstreams = upstream_list.create(rspamd_config, opts['servers'], default_port)
-    if not upstreams then
-      rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
-    else
-      rspamd_config:register_pre_filter(greylist_check)
-      rspamd_config:register_post_filter(greylist_set, 10)
-    end
+    rspamd_config:register_pre_filter(greylist_check)
+    rspamd_config:register_post_filter(greylist_set, 10)
   end
 
   for k,v in pairs(opts) do
index 7d12f1a5e28a590d9cac69c8cf4b93688934a211..bb34003cb78c55fb939512e397152b4a8815448d 100644 (file)
@@ -23,7 +23,6 @@ local rspamd_util = require "rspamd_util"
 local _ = require "fun"
 
 -- Default settings
-local default_port = 6379
 local upstreams = nil
 local whitelist = nil
 local asn_cc_whitelist = nil
@@ -333,19 +332,17 @@ local configure_ip_score_module = function()
     for k,v in pairs(opts) do
       options[k] = v
     end
-    if options['servers'] and options['servers'] ~= '' then
-      upstreams = upstream_list.create(rspamd_config, options['servers'], default_port)
-      if not upstreams then
-        rspamd_logger.infox(rspamd_config, 'no servers are specified')
-      end
-    end
-    if options['whitelist'] then
-      whitelist = rspamd_config:add_radix_map(opts['whitelist'])
-    end
-    if options['asn_cc_whitelist'] then
-      asn_cc_whitelist = rspamd_config:add_hash_map(opts['asn_cc_whitelist'])
+    upstreams = rspamd_parse_redis_server('ip_score')
+    if not upstreams then
+      rspamd_logger.infox(rspamd_config, 'no servers are specified')
     end
   end
+  if options['whitelist'] then
+    whitelist = rspamd_config:add_radix_map(opts['whitelist'])
+  end
+  if options['asn_cc_whitelist'] then
+    asn_cc_whitelist = rspamd_config:add_hash_map(opts['asn_cc_whitelist'])
+  end
 end
 
 
index d8bbf0dfa16174dfc94efb7a26a428502905d357..42ae569c683d324a475690e0aa3379e136e00f96 100644 (file)
@@ -16,8 +16,6 @@ limitations under the License.
 
 -- A plugin that implements ratelimits using redis or kvstorage server
 
--- Default port for redis upstreams
-local default_port = 6379
 -- Default settings for limits, 1-st member is burst, second is rate and the third is numeric type
 local settings = {
   -- Limit for all mail per recipient (burst 100, rate 2 per minute)
@@ -420,25 +418,21 @@ if opts then
     max_rcpt = tonumber(opts['max_delay'])
   end
 
-  if not opts['servers'] then
+  upstreams = rspamd_parse_redis_server('ratelimit')
+  if not upstreams then
     rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
   else
-    upstreams = upstream_list.create(rspamd_config, opts['servers'], default_port)
-    if not upstreams then
-      rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
+    if not ratelimit_symbol then
+      rspamd_config:register_pre_filter(rate_test)
     else
-      if not ratelimit_symbol then
-        rspamd_config:register_pre_filter(rate_test)
-      else
-        rspamd_config:register_symbol({
-          name = ratelimit_symbol,
-          callback = rate_test,
-          flags = 'empty'
-        })
-      end
-
-      rspamd_config:register_post_filter(rate_set)
+      rspamd_config:register_symbol({
+        name = ratelimit_symbol,
+        callback = rate_test,
+        flags = 'empty'
+      })
     end
+
+    rspamd_config:register_post_filter(rate_set)
   end
 end
 
index 70228f0dc83439291d56b5e94a05bca8263e3c09..98a48bb1f35d215c9daeb8840e707454153f675a 100644 (file)
@@ -18,7 +18,6 @@ limitations under the License.
 -- A plugin that implements replies check using redis
 
 -- Default port for redis upstreams
-local default_port = 6379
 local upstreams
 local whitelisted_ip
 local settings = {
@@ -102,17 +101,13 @@ end
 
 local opts = rspamd_config:get_all_opt('replies')
 if opts then
-  if not opts['servers'] then
-    rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
-  else
-    upstreams = upstream_list.create(rspamd_config, opts['servers'], default_port)
+    upstreams = rspamd_parse_redis_server('replies')
     if not upstreams then
       rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
     else
       rspamd_config:register_pre_filter(replies_check)
       rspamd_config:register_post_filter(replies_set, 10)
     end
-  end
 
   for k,v in pairs(opts) do
     settings[k] = v