Merge pull request #2160 from LemmyNet/rate_limit_websocket_fail

Fix rate limit check for register. Fixes #2159
asonix/no-rate-limit-errors
Nutomic 2022-03-24 21:43:02 +01:00 committed by GitHub
commit e208f0cb4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 38 deletions

View File

@ -86,7 +86,6 @@ impl RateLimited {
&ip_addr,
rate_limit.message,
rate_limit.message_per_second,
false,
)?;
drop(limiter);
@ -98,7 +97,6 @@ impl RateLimited {
&ip_addr,
rate_limit.post,
rate_limit.post_per_second,
true,
)?;
}
RateLimitType::Register => {
@ -107,7 +105,6 @@ impl RateLimited {
&ip_addr,
rate_limit.register,
rate_limit.register_per_second,
true,
)?;
}
RateLimitType::Image => {
@ -116,7 +113,6 @@ impl RateLimited {
&ip_addr,
rate_limit.image,
rate_limit.image_per_second,
false,
)?;
}
RateLimitType::Comment => {
@ -125,7 +121,6 @@ impl RateLimited {
&ip_addr,
rate_limit.comment,
rate_limit.comment_per_second,
false,
)?;
}
};
@ -133,34 +128,6 @@ impl RateLimited {
let res = fut.await;
// after
{
let mut limiter = self.rate_limiter.lock().await;
if res.is_ok() {
match self.type_ {
RateLimitType::Post => {
limiter.check_rate_limit_full(
self.type_,
&ip_addr,
rate_limit.post,
rate_limit.post_per_second,
false,
)?;
}
RateLimitType::Register => {
limiter.check_rate_limit_full(
self.type_,
&ip_addr,
rate_limit.register,
rate_limit.register_per_second,
false,
)?;
}
_ => (),
};
}
}
res
}
}

View File

@ -53,7 +53,6 @@ impl RateLimiter {
ip: &IpAddr,
rate: i32,
per: i32,
check_only: bool,
) -> Result<(), LemmyError> {
self.insert_ip(ip);
if let Some(bucket) = self.buckets.get_mut(&type_) {
@ -68,7 +67,7 @@ impl RateLimiter {
rate_limit.last_checked = current;
rate_limit.allowance += time_passed * (rate as f64 / per as f64);
if !check_only && rate_limit.allowance > rate as f64 {
if rate_limit.allowance > rate as f64 {
rate_limit.allowance = rate as f64;
}
@ -91,9 +90,7 @@ impl RateLimiter {
"too_many_requests",
))
} else {
if !check_only {
rate_limit.allowance -= 1.0;
}
Ok(())
}
} else {