]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Allow whitelisting by IP for greylisting plugin
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 25 Sep 2016 15:23:24 +0000 (16:23 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 25 Sep 2016 15:23:24 +0000 (16:23 +0100)
src/plugins/lua/greylist.lua

index 05afaeab6875d4245ed6cd15c4b2896de82d233f..64616442436a9dcba620ff21461d0774063229bd 100644 (file)
@@ -132,6 +132,14 @@ local function greylist_check(task)
     return
   end
 
+  if ip and ip:is_valid() and whitelisted_ip then
+    if whitelisted_ip:get_key(ip) then
+      -- Do not check whitelisted ip
+      rspamd_logger.infox(task, 'skip greylisting for whitelisted IP')
+      return
+    end
+  end
+
   local body_key = data_key(task)
   local meta_key = envelope_key(task)
   local hash_key = body_key .. meta_key
@@ -216,6 +224,12 @@ local function greylist_set(task)
     return
   end
 
+  if ip and ip:is_valid() and whitelisted_ip then
+    if whitelisted_ip:get_key(ip) then
+      return
+    end
+  end
+
   local is_whitelisted = task:get_mempool():get_variable("grey_whitelisted")
   local do_greylisting = task:get_mempool():get_variable("grey_greylisted")