summaryrefslogtreecommitdiff
path: root/middleware
diff options
context:
space:
mode:
Diffstat (limited to 'middleware')
-rw-r--r--middleware/ratelimit.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/middleware/ratelimit.go b/middleware/ratelimit.go
index fcb38cc..944f863 100644
--- a/middleware/ratelimit.go
+++ b/middleware/ratelimit.go
@@ -67,3 +67,16 @@ func RateLimitMiddleware(l *types.RateLimiter) func(http.Handler) http.Handler {
})
}
}
+
+// Cleanup iterates through the rate limiter's request map and removes entries
+// for IPs that have no recent requests.
+func Cleanup(l *types.RateLimiter) {
+ l.Mutex.Lock()
+ defer l.Mutex.Unlock()
+
+ for ip, requests := range l.Requests {
+ if len(requests) == 0 {
+ delete(l.Requests, ip)
+ }
+ }
+}