mirror of https://github.com/LemmyNet/lemmy.git
Merge pull request #2160 from LemmyNet/rate_limit_websocket_fail
Fix rate limit check for register. Fixes #2159asonix/no-rate-limit-errors
commit
e208f0cb4d
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue