|
|
|
@ -1,8 +1,12 @@
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @copyright Copyright (c) 2016, ownCloud, Inc.
|
|
|
|
|
*
|
|
|
|
|
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
|
|
|
|
|
* @author Côme Chilliet <come.chilliet@nextcloud.com>
|
|
|
|
|
* @author Joas Schilling <coding@schilljs.com>
|
|
|
|
|
* @author Jörn Friedrich Dreyer <jfd@butonic.de>
|
|
|
|
|
* @author Lukas Reschke <lukas@statuscode.ch>
|
|
|
|
@ -28,33 +32,39 @@
|
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
require_once __DIR__ . '/lib/versioncheck.php';
|
|
|
|
|
|
|
|
|
|
use OC\ServiceUnavailableException;
|
|
|
|
|
use OC\User\LoginException;
|
|
|
|
|
use OCP\HintException;
|
|
|
|
|
use OCP\IRequest;
|
|
|
|
|
use OCP\Security\Bruteforce\MaxDelayReached;
|
|
|
|
|
use OCP\Server;
|
|
|
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
require_once __DIR__ . '/lib/base.php';
|
|
|
|
|
|
|
|
|
|
OC::handleRequest();
|
|
|
|
|
} catch (\OC\ServiceUnavailableException $ex) {
|
|
|
|
|
\OC::$server->get(LoggerInterface::class)->error($ex->getMessage(), [
|
|
|
|
|
} catch (ServiceUnavailableException $ex) {
|
|
|
|
|
Server::get(LoggerInterface::class)->error($ex->getMessage(), [
|
|
|
|
|
'app' => 'index',
|
|
|
|
|
'exception' => $ex,
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
//show the user a detailed error page
|
|
|
|
|
OC_Template::printExceptionErrorPage($ex, 503);
|
|
|
|
|
} catch (\OCP\HintException $ex) {
|
|
|
|
|
} catch (HintException $ex) {
|
|
|
|
|
try {
|
|
|
|
|
OC_Template::printErrorPage($ex->getMessage(), $ex->getHint(), 503);
|
|
|
|
|
} catch (Exception $ex2) {
|
|
|
|
|
try {
|
|
|
|
|
\OC::$server->get(LoggerInterface::class)->error($ex->getMessage(), [
|
|
|
|
|
Server::get(LoggerInterface::class)->error($ex->getMessage(), [
|
|
|
|
|
'app' => 'index',
|
|
|
|
|
'exception' => $ex,
|
|
|
|
|
]);
|
|
|
|
|
\OC::$server->get(LoggerInterface::class)->error($ex2->getMessage(), [
|
|
|
|
|
Server::get(LoggerInterface::class)->error($ex2->getMessage(), [
|
|
|
|
|
'app' => 'index',
|
|
|
|
|
'exception' => $ex2,
|
|
|
|
|
]);
|
|
|
|
@ -65,8 +75,8 @@ try {
|
|
|
|
|
//show the user a detailed error page
|
|
|
|
|
OC_Template::printExceptionErrorPage($ex, 500);
|
|
|
|
|
}
|
|
|
|
|
} catch (\OC\User\LoginException $ex) {
|
|
|
|
|
$request = \OC::$server->getRequest();
|
|
|
|
|
} catch (LoginException $ex) {
|
|
|
|
|
$request = Server::get(IRequest::class);
|
|
|
|
|
/**
|
|
|
|
|
* Routes with the @CORS annotation and other API endpoints should
|
|
|
|
|
* not return a webpage, so we only print the error page when html is accepted,
|
|
|
|
@ -80,7 +90,7 @@ try {
|
|
|
|
|
}
|
|
|
|
|
OC_Template::printErrorPage($ex->getMessage(), $ex->getMessage(), 401);
|
|
|
|
|
} catch (MaxDelayReached $ex) {
|
|
|
|
|
$request = \OC::$server->getRequest();
|
|
|
|
|
$request = Server::get(IRequest::class);
|
|
|
|
|
/**
|
|
|
|
|
* Routes with the @CORS annotation and other API endpoints should
|
|
|
|
|
* not return a webpage, so we only print the error page when html is accepted,
|
|
|
|
@ -95,7 +105,7 @@ try {
|
|
|
|
|
http_response_code(429);
|
|
|
|
|
OC_Template::printGuestPage('core', '429');
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
\OC::$server->get(LoggerInterface::class)->error($ex->getMessage(), [
|
|
|
|
|
Server::get(LoggerInterface::class)->error($ex->getMessage(), [
|
|
|
|
|
'app' => 'index',
|
|
|
|
|
'exception' => $ex,
|
|
|
|
|
]);
|
|
|
|
@ -104,7 +114,7 @@ try {
|
|
|
|
|
OC_Template::printExceptionErrorPage($ex, 500);
|
|
|
|
|
} catch (Error $ex) {
|
|
|
|
|
try {
|
|
|
|
|
\OC::$server->get(LoggerInterface::class)->error($ex->getMessage(), [
|
|
|
|
|
Server::get(LoggerInterface::class)->error($ex->getMessage(), [
|
|
|
|
|
'app' => 'index',
|
|
|
|
|
'exception' => $ex,
|
|
|
|
|
]);
|
|
|
|
|