From a05147e25c87e320b9dd3d95d244109d88057e62 Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Thu, 24 Jul 2014 17:18:10 +0200
Subject: [PATCH] handle service not available exceptions in index, remote and
 public.php

---
 index.php  | 6 ++++++
 public.php | 5 +++++
 remote.php | 4 ++++
 3 files changed, 15 insertions(+)

diff --git a/index.php b/index.php
index bd94d0e908d..061391892fe 100755
--- a/index.php
+++ b/index.php
@@ -27,6 +27,12 @@ try {
 
 	OC::handleRequest();
 
+} catch(\OC\ServiceUnavailableException $ex) {
+	\OCP\Util::logException('index', $ex);
+
+	//show the user a detailed error page
+	OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
+	OC_Template::printExceptionErrorPage($ex);
 } catch (Exception $ex) {
 	\OCP\Util::logException('index', $ex);
 
diff --git a/public.php b/public.php
index 2ac082dba57..0e04db66da7 100644
--- a/public.php
+++ b/public.php
@@ -45,6 +45,11 @@ try {
 
 	require_once OC_App::getAppPath($app) . '/' . $parts[1];
 
+} catch (\OC\ServiceUnavailableException $ex) {
+	//show the user a detailed error page
+	OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
+	\OCP\Util::writeLog('remote', $ex->getMessage(), \OCP\Util::FATAL);
+	OC_Template::printExceptionErrorPage($ex);
 } catch (Exception $ex) {
 	//show the user a detailed error page
 	OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR);
diff --git a/remote.php b/remote.php
index a91742b0475..d854b1d65a6 100644
--- a/remote.php
+++ b/remote.php
@@ -51,6 +51,10 @@ try {
 	$baseuri = OC::$WEBROOT . '/remote.php/'.$service.'/';
 	require_once $file;
 
+} catch (\OC\ServiceUnavailableException $ex) {
+	OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
+	\OCP\Util::writeLog('remote', $ex->getMessage(), \OCP\Util::FATAL);
+	OC_Template::printExceptionErrorPage($ex);
 } catch (Exception $ex) {
 	OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR);
 	\OCP\Util::writeLog('remote', $ex->getMessage(), \OCP\Util::FATAL);
-- 
GitLab