Add more existence checks to rate limiter

This commit is contained in:
Slendy 2022-10-31 20:51:00 -05:00
commit af1e3a3284
No known key found for this signature in database
GPG key ID: 7288D68361B91428

View file

@ -104,9 +104,13 @@ public class RateLimitMiddleware : MiddlewareDBContext
for (int i = recentRequests.Count - 1; i >= 0; i--) for (int i = recentRequests.Count - 1; i >= 0; i--)
{ {
IPAddress address = recentRequests.ElementAt(i).Key; IPAddress address = recentRequests.ElementAt(i).Key;
recentRequests[address].RemoveAll(r => TimeHelper.TimestampMillis > r.Expiration); bool exists = recentRequests.TryGetValue(address, out List<LighthouseRequest>? requests);
// Remove empty entries if (!exists || recentRequests[address].Count == 0)
if (recentRequests[address].Count == 0) recentRequests.TryRemove(address, out _); {
recentRequests.TryRemove(address, out _);
continue;
}
requests?.RemoveAll(r => TimeHelper.TimestampMillis > r.Expiration);
} }
} }