commit 776c076: [Minor] Virustotal: Improve caching

Vsevolod Stakhov vsevolod at highsecure.ru
Sat Nov 2 09:42:11 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-11-02 09:38:27 +0000
URL: https://github.com/rspamd/rspamd/commit/776c076172699e8c23fb2e6116f59786f6916a33 (HEAD -> master)

[Minor] Virustotal: Improve caching

---
 lualib/lua_scanners/virustotal.lua | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/lualib/lua_scanners/virustotal.lua b/lualib/lua_scanners/virustotal.lua
index 9d06f9108..b36d57ce5 100644
--- a/lualib/lua_scanners/virustotal.lua
+++ b/lualib/lua_scanners/virustotal.lua
@@ -98,6 +98,7 @@ local function virustotal_check(task, content, digest, rule)
         rspamd_logger.errx(task, 'HTTP error: %s, body: %s, headers: %s', http_err, body, headers)
       else
         local cached
+        local dyn_score
         -- Parse the response
         if code ~= 200 then
           if code == 404 then
@@ -136,7 +137,6 @@ local function virustotal_check(task, content, digest, rule)
               -- TODO: add proper hashing!
               cached = 'OK'
             else
-              local dyn_score
               if obj.positives > rule.full_score_engines then
                 dyn_score = 1.0
               else
@@ -147,11 +147,10 @@ local function virustotal_check(task, content, digest, rule)
               if dyn_score < 0 or dyn_score > 1 then
                 dyn_score = 1.0
               end
-              common.yield_result(task, rule, {
-                hash,
-                string.format("%s/%s", obj.positives, obj.total)
-              }, dyn_score)
-              cached = hash
+              local sopt = string.format("%s:%s/%s",
+                  hash, obj.positives, obj.total)
+              common.yield_result(task, rule, sopt, dyn_score)
+              cached = sopt
             end
           else
             rspamd_logger.errx(task, 'invalid JSON reply: %s, body: %s, headers: %s',
@@ -163,7 +162,7 @@ local function virustotal_check(task, content, digest, rule)
         end
 
         if cached then
-          common.save_cache(task, digest, rule, cached)
+          common.save_cache(task, digest, rule, cached, dyn_score)
         end
       end
     end


More information about the Commits mailing list