summaryrefslogtreecommitdiffstats
path: root/lualib/lua_scanners/p0f.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lualib/lua_scanners/p0f.lua')
-rw-r--r--lualib/lua_scanners/p0f.lua26
1 files changed, 18 insertions, 8 deletions
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