]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Combine Date checks
authorAnton Yuzhaninov <citrin+git@citrin.ru>
Tue, 6 Oct 2020 17:17:33 +0000 (18:17 +0100)
committerAnton Yuzhaninov <citrin+git@citrin.ru>
Tue, 6 Oct 2020 17:17:33 +0000 (18:17 +0100)
Combine Date header checks into a single callback. No functional
changes.

rules/misc.lua

index 88895c2b9c1c11fbe4ef8de4fc5046b775724d7f..5a65442efea43c06c0ba325ed49663240da69c88 100644 (file)
@@ -55,51 +55,56 @@ rspamd_config.R_PARTS_DIFFER = {
 }
 
 -- Date issues
-rspamd_config.MISSING_DATE = {
+local date_id = rspamd_config:register_symbol({
+  name = 'DATE_CB',
+  type = 'callback,mime',
   callback = function(task)
-    local date = task:get_header_raw('Date')
-    if date == nil or date == '' then
-      return true
+    local date_time = task:get_header('Date')
+    if date_time == nil or date_time == '' then
+      task:insert_result('MISSING_DATE', 1.0)
+      return
     end
-    return false
-  end,
+
+    local dm = task:get_date({format = 'message', gmt = true})
+    local dt = task:get_date({format = 'connect', gmt = true})
+
+    if dm > 0 and dm - dt > 7200 then
+      -- 2 hours
+      task:insert_result('DATE_IN_FUTURE', 1.0)
+      return
+    elseif dm > 0 and dt - dm > 86400 then
+      -- A day
+      task:insert_result('DATE_IN_PAST', 1.0)
+    end
+  end
+})
+
+rspamd_config:register_symbol({
+  name = 'MISSING_DATE',
   score = 1.0,
   description = 'Message date is missing',
   group = 'headers',
-  type = 'mime',
-}
+  type = 'virtual',
+  parent = date_id,
+})
 
-rspamd_config.DATE_IN_FUTURE = {
-  callback = function(task)
-    local dm = task:get_date{format = 'message', gmt = true}
-    local dt = task:get_date{format = 'connect', gmt = true}
-    -- 2 hours
-    if dm > 0 and dm - dt > 7200 then
-      return true
-    end
-    return false
-  end,
+rspamd_config:register_symbol({
+  name = 'DATE_IN_FUTURE',
   score = 4.0,
   description = 'Message date is in future',
   group = 'headers',
-  type = 'mime',
-}
+  type = 'virtual',
+  parent = date_id,
+})
 
-rspamd_config.DATE_IN_PAST = {
-  callback = function(task)
-    local dm = task:get_date{format = 'message', gmt = true}
-    local dt = task:get_date{format = 'connect', gmt = true}
-    -- A day
-    if dm > 0 and dt - dm > 86400 then
-      return true
-    end
-    return false
-  end,
+rspamd_config:register_symbol({
+  name = 'DATE_IN_PAST',
   score = 1.0,
   description = 'Message date is in past',
   group = 'headers',
-  type = 'mime',
-}
+  type = 'virtual',
+  parent = date_id,
+})
 
 local obscured_id = rspamd_config:register_symbol{
   callback = function(task)