cache decision in live mode for maximum defaultDecisionTimeout params (#79)

This commit is contained in:
maxlerebourg
2023-01-18 21:03:09 +01:00
committed by GitHub
parent 5b15d6fdc4
commit 4132445a79
3 changed files with 7 additions and 3 deletions
+1 -1
View File
@@ -110,7 +110,7 @@ make run
- DefaultDecisionSeconds
- int64
- default: 60
- Used only in `live` mode, decision duration of accepted IPs
- Used only in `live` mode, maximum decision duration
- CrowdsecCapiMachineId
- string
- Used only in `alone` mode, login for Crowdsec CAPI
+5 -1
View File
@@ -313,7 +313,11 @@ func handleNoStreamCache(bouncer *Bouncer, remoteIP string) error {
return fmt.Errorf("handleNoStreamCache:parseDuration %w", err)
}
if isLiveMode {
bouncer.cacheClient.SetDecision(remoteIP, true, int64(duration.Seconds()))
durationSecond := int64(duration.Seconds())
if bouncer.defaultDecisionTimeout < durationSecond {
durationSecond = bouncer.defaultDecisionTimeout
}
bouncer.cacheClient.SetDecision(remoteIP, true, durationSecond)
}
return fmt.Errorf("handleNoStreamCache:banned")
}
+1 -1
View File
@@ -101,7 +101,7 @@ func (client *Client) GetDecision(clientIP string) (bool, error) {
// SetDecision update the cache with the IP as key and the value banned / not banned.
func (client *Client) SetDecision(clientIP string, isBanned bool, duration int64) {
logger.Debug(fmt.Sprintf("cache:SetDecision ip:%v isBanned:%v", clientIP, isBanned))
logger.Debug(fmt.Sprintf("cache:SetDecision ip:%v isBanned:%v duration:%vs", clientIP, isBanned, duration))
var value string
if isBanned {
value = cacheBannedValue