22 lines
392 B
Go
22 lines
392 B
Go
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()
|
|
}
|
|
} |