From dd8000aba2c0759e555ec8eecd696148e92d9ec1 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 11 May 2026 19:16:23 +0400 Subject: [PATCH] perf(api): skip remaining abuse checks without limits --- app/controllers/shared/api.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index 28efd07216..641ac92477 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -559,17 +559,18 @@ Http::init() } $abuse = new Abuse($timeLimit); - $remaining = $timeLimit->remaining(); - $limit = $timeLimit->limit(); $time = $timeLimit->time() + $route->getLabel('abuse-time', 3600); - if ($limit && ($remaining < $closestLimit || is_null($closestLimit))) { - $closestLimit = $remaining; - $response - ->addHeader('X-RateLimit-Limit', $limit) - ->addHeader('X-RateLimit-Remaining', $remaining) - ->addHeader('X-RateLimit-Reset', $time); + if ($limit) { + $remaining = $timeLimit->remaining(); + if ($remaining < $closestLimit || is_null($closestLimit)) { + $closestLimit = $remaining; + $response + ->addHeader('X-RateLimit-Limit', $limit) + ->addHeader('X-RateLimit-Remaining', $remaining) + ->addHeader('X-RateLimit-Reset', $time); + } } $enabled = System::getEnv('_APP_OPTIONS_ABUSE', 'enabled') !== 'disabled';