From dc7467f5d5621ac364171bb394f6a4c14e29cb08 Mon Sep 17 00:00:00 2001 From: Patrick Asmus Date: Thu, 14 May 2026 22:37:51 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20abgelaufene=20tempor=C3=A4re=20Bans=20we?= =?UTF-8?q?rden=20jetzt=20zur=20Laufzeit=20freigegeben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/daemon/daemon.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/daemon/daemon.go b/internal/daemon/daemon.go index 5bbf5d6..c705da6 100644 --- a/internal/daemon/daemon.go +++ b/internal/daemon/daemon.go @@ -131,6 +131,16 @@ func (d *Daemon) Run(ctx context.Context) error { } d.runJob(ctx, "external-whitelist", d.Config.ExternalWhitelistEnabled, time.Duration(d.Config.ExternalWhitelistInterval)*time.Second, d.SyncWhitelist) d.runJob(ctx, "external-blocklist", d.Config.ExternalBlocklistEnabled, time.Duration(d.Config.ExternalBlocklistInterval)*time.Second, d.SyncBlocklist) + d.runJob(ctx, "ban-expiry", true, 60*time.Second, func(ctx context.Context) error { + expired, err := d.Store.ExpiredBans(time.Now().Unix()) + if err != nil { + return err + } + for _, ip := range expired { + _ = d.Unban(ctx, ip, "expired") + } + return nil + }) d.runJob(ctx, "offense-cleanup", d.Config.ProgressiveBanEnabled, time.Hour, func(ctx context.Context) error { n, err := d.Store.CleanupOffenses(d.Config.ProgressiveBanResetAfter) if n > 0 {