commit 617c1bd: [Minor] P0f: Fix output

Vsevolod Stakhov vsevolod at highsecure.ru
Mon Nov 18 12:49:06 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-11-18 12:47:18 +0000
URL: https://github.com/rspamd/rspamd/commit/617c1bd77dfb532fe47bd27e58a1202d744b0af1 (HEAD -> master)

[Minor] P0f: Fix output

---
 lualib/lua_scanners/common.lua |  2 +-
 lualib/lua_scanners/p0f.lua    | 26 ++++++++++++++++++--------
 2 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/lualib/lua_scanners/common.lua b/lualib/lua_scanners/common.lua
index 117945dd4..80032676b 100644
--- a/lualib/lua_scanners/common.lua
+++ b/lualib/lua_scanners/common.lua
@@ -104,9 +104,9 @@ local function yield_result(task, rule, vname, dyn_weight, is_fail)
       rspamd_logger.infox(task, '%s: "%s" is in whitelist', rule.log_prefix, tm)
     else
       all_whitelisted = false
-      task:insert_result(symname, symscore, tm)
       rspamd_logger.infox(task, '%s: result - %s: "%s - score: %s"',
           rule.log_prefix, threat_info, tm, symscore)
+      task:insert_result(symname, symscore, tm)
     end
   end
 
diff --git a/lualib/lua_scanners/p0f.lua b/lualib/lua_scanners/p0f.lua
index 056c0ad8b..0e7bd4279 100644
--- a/lualib/lua_scanners/p0f.lua
+++ b/lualib/lua_scanners/p0f.lua
@@ -99,8 +99,13 @@ local function p0f_check(task, ip, rule)
     task:get_mempool():set_variable('os_fingerprint', os_string, link_type,
       uptime_min, distance)
 
-    common.yield_result(task, rule, {
-      os_string, link_type, 'distance:' .. distance }, 0.0)
+    if link_type and #link_type > 0 then
+      common.yield_result(task, rule, string.format('%s, link=%s, distance: %s',
+          os_string, link_type, distance), 0.0)
+    else
+      common.yield_result(task, rule, string.format('%s, distance: %s',
+          os_string, distance), 0.0)
+    end
 
     return data
   end
@@ -115,17 +120,22 @@ local function p0f_check(task, ip, rule)
         end
       end
 
+      if err then
+        rspamd_logger.errx(task, 'p0f received an error: %s', err)
+        return
+      end
+
       data = parse_p0f_response(data)
 
       if rule.redis_params and data then
         local key = rule.prefix .. ip:to_string()
         local ret = lua_redis.redis_make_request(task,
-          rule.redis_params,
-          key,
-          true,
-          redis_set_cb,
-          'SETEX',
-          { key, tostring(rule.expire), data }
+            rule.redis_params,
+            key,
+            true,
+            redis_set_cb,
+            'SETEX',
+            { key, tostring(rule.expire), data }
         )
 
         if not ret then


More information about the Commits mailing list