]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] P0f: Fix output
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Nov 2019 12:47:18 +0000 (12:47 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Nov 2019 12:47:18 +0000 (12:47 +0000)
lualib/lua_scanners/common.lua
lualib/lua_scanners/p0f.lua

index 117945dd48bb312d40fac462f6ca549fe721593d..80032676bf2991354f81bbd8d674e471833a576e 100644 (file)
@@ -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
 
index 056c0ad8b51d8c28d7017bc6fccf2502add4cb87..0e7bd42795b88fe59ded73be0fb543cfa5d19746 100644 (file)
@@ -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