summaryrefslogtreecommitdiff
path: root/middleware/ratelimit.go
diff options
context:
space:
mode:
authorhaturatu <taro@eyes4you.org>2025-10-12 20:17:28 +0900
committerhaturatu <taro@eyes4you.org>2025-10-12 20:17:46 +0900
commit5943ca5e9856b9ec08efc372f1ee515460432620 (patch)
tree55562880591b622de00941fc750cff45d1532558 /middleware/ratelimit.go
parent96f2fed1577e69b62134187c61a4dcf7d864c52b (diff)
feat(goroutine): workerpool
Diffstat (limited to 'middleware/ratelimit.go')
-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)
+ }
+ }
+}