]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Store metatokens in task cache
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 10 Feb 2017 17:42:32 +0000 (17:42 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 10 Feb 2017 18:03:35 +0000 (18:03 +0000)
rules/global_functions.lua

index 750516190e9be8b145d5bfe09e175ba701b98c26..f878a8c9e570b5b55df5fcce40b90f93d74300fc 100644 (file)
@@ -366,12 +366,20 @@ local metafunctions = {
 function rspamd_gen_metatokens(task)
   local ipairs = ipairs
   local metatokens = {}
-  for _,mt in ipairs(metafunctions) do
-    local ct = mt.cb(task)
+  local cached = task:cache_get('metatokens')
+
+  if cached then
+    return cached
+  else
+    for _,mt in ipairs(metafunctions) do
+      local ct = mt.cb(task)
 
-    for _,tok in ipairs(ct) do
-      table.insert(metatokens, tok)
+      for _,tok in ipairs(ct) do
+        table.insert(metatokens, tok)
+      end
     end
+
+    task:cache_set('metatokens', metatokens)
   end
 
   return metatokens