diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-07-27 18:02:12 +0000 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-07-27 18:02:12 +0000 |
| commit | b39439f9fbff0c49133aacd1edad564987355de7 (patch) | |
| tree | a2b7a11ae3a610d75bdaa91512c4f53de3cf9d92 /packages/backend/src | |
| parent | merge: Fix link verification for actors without a url field *FOR STABLE* (!1... (diff) | |
| parent | scale rate limit dripRate with factor (diff) | |
| download | sharkey-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.md | 2 | ||||
| -rw-r--r-- | packages/backend/src/server/SkRateLimiterService.ts | 2 |
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); |