diff --git a/approot.inc.php b/approot.inc.php index 98bd2e537..a180e8560 100644 --- a/approot.inc.php +++ b/approot.inc.php @@ -2,73 +2,5 @@ define('APPROOT', dirname(__FILE__).'/'); define('APPCONF', APPROOT.'conf/'); -define('ITOP_DEFAULT_ENV', 'production'); -define('MAINTENANCE_MODE_FILE', APPROOT.'data/.maintenance'); -define('READONLY_MODE_FILE', APPROOT.'data/.readonly'); - -if (function_exists('microtime')) -{ - $fItopStarted = microtime(true); -} -else -{ - $fItopStarted = 1000 * time(); -} require_once APPROOT.'bootstrap.inc.php'; - - -// -// Maintenance mode -// - -// Use 'maintenance' parameter to bypass maintenance mode -if (!isset($bBypassMaintenance)) -{ - $bBypassMaintenance = isset($_REQUEST['maintenance']) ? boolval($_REQUEST['maintenance']) : false; -} - -if (file_exists(MAINTENANCE_MODE_FILE) && !$bBypassMaintenance) -{ - $sMessage = 'This application is currently under maintenance.'; - $sTitle = 'Maintenance'; - - http_response_code(503); - // Display message depending on the request - include(APPROOT.'application/maintenancemsg.php'); - $sSAPIName = strtoupper(trim(php_sapi_name())); - - switch (true) - { - case isset($_SERVER['REQUEST_URI']) && EndsWith($_SERVER['REQUEST_URI'], '/pages/ajax.searchform.php'): - _MaintenanceHtmlMessage($sMessage); - break; - - case $sSAPIName == 'CLI': - case array_key_exists('HTTP_X_COMBODO_AJAX', $_SERVER): - case isset($_SERVER['REQUEST_URI']) && EndsWith($_SERVER['REQUEST_URI'], '/webservices/soapserver.php'): - case isset($_SERVER['REQUEST_URI']) && EndsWith($_SERVER['REQUEST_URI'], '/webservices/rest.php'): - _MaintenanceTextMessage($sMessage); - break; - - case isset($_SERVER['CONTENT_TYPE']) && ($_SERVER['CONTENT_TYPE'] == 'application/json'): - _MaintenanceJsonMessage($sTitle, $sMessage); - break; - - default: - _MaintenanceSetupPageMessage($sTitle, $sMessage); - break; - } - exit(); -} - -/** - * helper to test if a string ends with another - * @param $haystack - * @param $needle - * - * @return bool - */ -function EndsWith($haystack, $needle) { - return substr_compare($haystack, $needle, -strlen($needle)) === 0; -} diff --git a/bootstrap.inc.php b/bootstrap.inc.php index 9da290c25..971fd8326 100644 --- a/bootstrap.inc.php +++ b/bootstrap.inc.php @@ -18,9 +18,75 @@ * You should have received a copy of the GNU Affero General Public License */ +define('ITOP_DEFAULT_ENV', 'production'); +define('MAINTENANCE_MODE_FILE', APPROOT.'data/.maintenance'); +define('READONLY_MODE_FILE', APPROOT.'data/.readonly'); + +if (function_exists('microtime')) +{ + $fItopStarted = microtime(true); +} +else +{ + $fItopStarted = 1000 * time(); +} if (! isset($GLOBALS['bBypassAutoload']) || $GLOBALS['bBypassAutoload'] == false) { require_once APPROOT.'/lib/autoload.php'; } +// +// Maintenance mode +// + +// Use 'maintenance' parameter to bypass maintenance mode +if (!isset($bBypassMaintenance)) +{ + $bBypassMaintenance = isset($_REQUEST['maintenance']) ? boolval($_REQUEST['maintenance']) : false; +} + +if (file_exists(MAINTENANCE_MODE_FILE) && !$bBypassMaintenance) +{ + $sMessage = 'This application is currently under maintenance.'; + $sTitle = 'Maintenance'; + + http_response_code(503); + // Display message depending on the request + include(APPROOT.'application/maintenancemsg.php'); + $sSAPIName = strtoupper(trim(php_sapi_name())); + + switch (true) + { + case isset($_SERVER['REQUEST_URI']) && EndsWith($_SERVER['REQUEST_URI'], '/pages/ajax.searchform.php'): + _MaintenanceHtmlMessage($sMessage); + break; + + case $sSAPIName == 'CLI': + case array_key_exists('HTTP_X_COMBODO_AJAX', $_SERVER): + case isset($_SERVER['REQUEST_URI']) && EndsWith($_SERVER['REQUEST_URI'], '/webservices/soapserver.php'): + case isset($_SERVER['REQUEST_URI']) && EndsWith($_SERVER['REQUEST_URI'], '/webservices/rest.php'): + _MaintenanceTextMessage($sMessage); + break; + + case isset($_SERVER['CONTENT_TYPE']) && ($_SERVER['CONTENT_TYPE'] == 'application/json'): + _MaintenanceJsonMessage($sTitle, $sMessage); + break; + + default: + _MaintenanceSetupPageMessage($sTitle, $sMessage); + break; + } + exit(); +} + +/** + * helper to test if a string ends with another + * @param $haystack + * @param $needle + * + * @return bool + */ +function EndsWith($haystack, $needle) { + return substr_compare($haystack, $needle, -strlen($needle)) === 0; +}