summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-07-27 18:02:12 +0000
committerHazelnoot <acomputerdog@gmail.com>2025-07-27 18:02:12 +0000
commitb39439f9fbff0c49133aacd1edad564987355de7 (patch)
treea2b7a11ae3a610d75bdaa91512c4f53de3cf9d92 /packages/backend/src
parentmerge: Fix link verification for actors without a url field *FOR STABLE* (!1... (diff)
parentscale rate limit dripRate with factor (diff)
downloadsharkey-b39439f9fbff0c49133aacd1edad564987355de7.tar.gz
sharkey-b39439f9fbff0c49133aacd1edad564987355de7.tar.bz2
sharkey-b39439f9fbff0c49133aacd1edad564987355de7.zip
merge: Fix factor scaling in rate limit *FOR STABLE* (!1194)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1194 Approved-by: Hazelnoot <acomputerdog@gmail.com>
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/server/SkRateLimiterService.md2
-rw-r--r--packages/backend/src/server/SkRateLimiterService.ts2
2 files changed, 2 insertions, 2 deletions
diff --git a/packages/backend/src/server/SkRateLimiterService.md b/packages/backend/src/server/SkRateLimiterService.md
index 55786664e1..4ec097ea8e 100644
--- a/packages/backend/src/server/SkRateLimiterService.md
+++ b/packages/backend/src/server/SkRateLimiterService.md
@@ -81,7 +81,7 @@ The Atomic Leaky Bucket algorithm is described here, in pseudocode:
# * Delta Timestamp - Difference between current and expected timestamp value
# 0 - Calculations
-dripRate = ceil(limit.dripRate ?? 1000);
+dripRate = ceil((limit.dripRate ?? 1000) * factor);
dripSize = ceil(limit.dripSize ?? 1);
bucketSize = max(ceil(limit.size / factor), 1);
maxExpiration = max(ceil((dripRate * ceil(bucketSize / dripSize)) / 1000), 1);;
diff --git a/packages/backend/src/server/SkRateLimiterService.ts b/packages/backend/src/server/SkRateLimiterService.ts
index 35e87b0fe8..a53c58ba5a 100644
--- a/packages/backend/src/server/SkRateLimiterService.ts
+++ b/packages/backend/src/server/SkRateLimiterService.ts
@@ -206,7 +206,7 @@ export class SkRateLimiterService {
// 0 - Calculate
const now = this.timeService.now;
const bucketSize = Math.max(Math.ceil(limit.size / factor), 1);
- const dripRate = Math.ceil(limit.dripRate ?? 1000);
+ const dripRate = Math.ceil((limit.dripRate ?? 1000) * factor);
const dripSize = Math.ceil(limit.dripSize ?? 1);
const fullResetMs = dripRate * Math.ceil(bucketSize / dripSize);
const fullResetSec = Math.max(Math.ceil(fullResetMs / 1000), 1);