From 2cd7200544f4e87840ea85537683ae67369161dd Mon Sep 17 00:00:00 2001 From: alteredCoder Date: Tue, 22 Feb 2022 18:41:30 +0100 Subject: [PATCH 1/2] Fix live query mode when IP is good --- lib/crowdsec.lua | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/crowdsec.lua b/lib/crowdsec.lua index 0b47fad..af54aec 100644 --- a/lib/crowdsec.lua +++ b/lib/crowdsec.lua @@ -268,7 +268,8 @@ function live_query(ip) end if body == "null" then -- no result from API, no decision for this IP -- set ip in cache and DON'T block it - local succ, err, forcible = runtime.cache:set(ip, true,runtime.conf["CACHE_EXPIRATION"]) + local key = item_to_string(decision.value, "ip") + local succ, err, forcible = runtime.cache:set(key, true, runtime.conf["CACHE_EXPIRATION"], 1) if not succ then ngx.log(ngx.ERR, "failed to add ip '" .. ip .. "' in cache: "..err) end @@ -305,11 +306,7 @@ function csmod.GetCaptchaTemplate() end -function csmod.allowIp(ip) - if runtime.conf == nil then - return true, nil, "Configuration is bad, cannot run properly" - end - +function csmod.SetupStream() -- if it stream mode and startup start timer if runtime.cache:get("first_run") == true and runtime.conf["MODE"] == "stream" then local ok, err @@ -337,6 +334,14 @@ function csmod.allowIp(ip) end ngx.log(ngx.DEBUG, "Timer launched") end +end + +function csmod.allowIp(ip) + if runtime.conf == nil then + return true, nil, "Configuration is bad, cannot run properly" + end + + csmod.SetupStream() local key = item_to_string(ip, "ip") local key_parts = {} @@ -378,9 +383,6 @@ function csmod.allowIp(ip) return true, nil, nil end - - - function csmod.Allow(ip) if utils.table_len(runtime.conf["EXCLUDE_LOCATION"]) > 0 then for k, v in pairs(runtime.conf["EXCLUDE_LOCATION"]) do From f56383722b94b79a6c0499840eb2f6c92f469b7f Mon Sep 17 00:00:00 2001 From: alteredCoder Date: Tue, 22 Feb 2022 18:50:11 +0100 Subject: [PATCH 2/2] fix --- lib/crowdsec.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/crowdsec.lua b/lib/crowdsec.lua index af54aec..d1a16fa 100644 --- a/lib/crowdsec.lua +++ b/lib/crowdsec.lua @@ -268,7 +268,7 @@ function live_query(ip) end if body == "null" then -- no result from API, no decision for this IP -- set ip in cache and DON'T block it - local key = item_to_string(decision.value, "ip") + local key = item_to_string(ip, "ip") local succ, err, forcible = runtime.cache:set(key, true, runtime.conf["CACHE_EXPIRATION"], 1) if not succ then ngx.log(ngx.ERR, "failed to add ip '" .. ip .. "' in cache: "..err)