package main import ( "log/slog" "time" ) func cleanupLoop(tw *tempWhitelist, d time.Duration) { ticker := time.NewTicker(d) defer ticker.Stop() for range ticker.C { now := time.Now() tw.mu.Lock() for ip, entry := range tw.entries { if entry.Expires.Before(now) { slog.Info("expired temporary whitelist", "ip", ip) delete(tw.entries, ip) } } tw.mu.Unlock() } }