]> source.dussan.org Git - rspamd.git/commitdiff
[Rework] Migrate from ip_score to reputation
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 17 Jul 2019 16:13:06 +0000 (17:13 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 17 Jul 2019 16:13:06 +0000 (17:13 +0100)
conf/composites.conf
lualib/lua_cfg_transform.lua
src/plugins/lua/ip_score.lua [new file with mode: 0644]

index 77332b27fbc2df7ae42ce357f24451ab2db7d97a..37b1c3da98e0bd6cbdd1e7cba930ba7808444e5f 100644 (file)
@@ -138,7 +138,7 @@ composites {
 
   IP_SCORE_FREEMAIL {
     description = "Negate IP_SCORE when message comes from FreeMail";
-    expression = "FREEMAIL_FROM & IP_SCORE";
+    expression = "FREEMAIL_FROM & SENDER_REP_SPAM";
     score = 0.0;
     policy = "remove_weight";
   }
index 83b979ac5103f73e3b223461e335fe279eca35be..ac328f86f048c7b8b6832d478dfb5b60c862123f 100644 (file)
@@ -17,6 +17,7 @@ limitations under the License.
 local logger = require "rspamd_logger"
 local lua_util = require "lua_util"
 local rspamd_util = require "rspamd_util"
+local fun = require "fun"
 
 local function is_implicit(t)
   local mt = getmetatable(t)
@@ -358,5 +359,42 @@ return function(cfg)
     end
   end
 
+  -- Deal with IP_SCORE
+  if cfg.ip_score then
+    logger.warnx(rspamd_config, 'ip_score module is deprecated in honor of reputation module!')
+
+    if not cfg.reputation then
+      cfg.reputation = {
+        rules = {}
+      }
+    end
+
+    if not fun.any(function(_, v) return v.selector and v.selector.ip end,
+        cfg.reputation.rules) then
+      logger.infox(rspamd_config, 'attach ip reputation element to use it')
+
+      cfg.reputation.rules.ip_score = {
+        selector = {
+          ip = {},
+        },
+        backend = {
+          redis = {},
+        }
+      }
+
+      if cfg.symbols['IP_SCORE'] then
+        local t = cfg.symbols['IP_SCORE']
+
+        if not cfg.symbols['SENDER_REP_SPAM'] then
+          cfg.symbols['SENDER_REP_SPAM'] = t
+          cfg.symbols['SENDER_REP_HAM'] = t
+          cfg.symbols['SENDER_REP_HAM'].weight = -(t.weight or 0)
+        end
+      end
+    else
+      logger.infox(rspamd_config, 'ip reputation already exists, do not do any IP_SCORE transforms')
+    end
+  end
+
   return ret, cfg
 end
diff --git a/src/plugins/lua/ip_score.lua b/src/plugins/lua/ip_score.lua
new file mode 100644 (file)
index 0000000..e43fa3b
--- /dev/null
@@ -0,0 +1,4 @@
+-- This module is deprecated and must not be used.
+-- This file serves as a tombstone to prevent old ip_score to be loaded
+
+return
\ No newline at end of file