aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2024-09-05 16:10:05 +0200
committerCôme Chilliet <91878298+come-nc@users.noreply.github.com>2024-09-09 10:46:29 +0200
commit42c5a60c2944d9f509095bca0849fdb7803ae5b9 (patch)
tree92cd9fde87224603fd045100783c3438ef081ee2
parent76d1b11bc97dc03300aeb6fe817e686e06328e48 (diff)
downloadnextcloud-server-42c5a60c2944d9f509095bca0849fdb7803ae5b9.tar.gz
nextcloud-server-42c5a60c2944d9f509095bca0849fdb7803ae5b9.zip
fix: Force 503 HTTP status code for maintenance mode on v1
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
-rw-r--r--lib/private/OCS/ApiHelper.php5
-rw-r--r--ocs/v1.php2
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/private/OCS/ApiHelper.php b/lib/private/OCS/ApiHelper.php
index 04d6983db98..4679b4da864 100644
--- a/lib/private/OCS/ApiHelper.php
+++ b/lib/private/OCS/ApiHelper.php
@@ -21,8 +21,9 @@ class ApiHelper {
/**
* Respond to a call
* @psalm-taint-escape html
+ * @param int $httpStatusCode force the HTTP status code, only used for the special case of maintenance mode which return 503 even for v1
*/
- public static function respond(int $statusCode, string $statusMessage, array $headers = []): void {
+ public static function respond(int $statusCode, string $statusMessage, array $headers = [], ?int $httpStatusCode = null): void {
$request = Server::get(IRequest::class);
$format = $request->getParam('format', 'xml');
if (self::isV2($request)) {
@@ -46,7 +47,7 @@ class ApiHelper {
header($name . ': ' . $value);
}
- http_response_code($response->getStatus());
+ http_response_code($httpStatusCode ?? $response->getStatus());
self::setContentType($format);
$body = $response->render();
diff --git a/ocs/v1.php b/ocs/v1.php
index 7aad1526d22..90d7971c549 100644
--- a/ocs/v1.php
+++ b/ocs/v1.php
@@ -24,7 +24,7 @@ if (Util::needUpgrade()
|| \OC::$server->getConfig()->getSystemValueBool('maintenance')) {
// since the behavior of apps or remotes are unpredictable during
// an upgrade, return a 503 directly
- ApiHelper::respond(503, 'Service unavailable', ['X-Nextcloud-Maintenance-Mode' => '1']);
+ ApiHelper::respond(503, 'Service unavailable', ['X-Nextcloud-Maintenance-Mode' => '1'], 503);
exit;
}