diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-11-02 09:38:27 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-11-02 09:38:27 +0000 |
commit | 776c076172699e8c23fb2e6116f59786f6916a33 (patch) | |
tree | f272fb16f51af8da51534dda79694b8d0f687640 /lualib/lua_scanners | |
parent | 3abf8d06c6e7f50081699e972ae17f800b42e22e (diff) | |
download | rspamd-776c076172699e8c23fb2e6116f59786f6916a33.tar.gz rspamd-776c076172699e8c23fb2e6116f59786f6916a33.zip |
[Minor] Virustotal: Improve caching
Diffstat (limited to 'lualib/lua_scanners')
-rw-r--r-- | lualib/lua_scanners/virustotal.lua | 13 |
1 files 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 |