X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FApp.php;h=495cfb8b0a127d957325e474aa600e7bbeed1235;hb=3f66ecf3befe3233cd731eca5701a23dd6e0003e;hp=9df62a4e776bdb49be18ec5e682cd2156364d5f9;hpb=8082b68185dc8bc72abcf250ccd4b9a9ba2d3739;p=friendica.git diff --git a/src/App.php b/src/App.php index 9df62a4e77..495cfb8b0a 100644 --- a/src/App.php +++ b/src/App.php @@ -64,7 +64,7 @@ class App { const PLATFORM = 'Friendica'; const CODENAME = 'Giant Rhubarb'; - const VERSION = '2023.03-dev'; + const VERSION = '2023.06-dev'; // Allow themes to control internal parameters // by changing App values in theme.php @@ -335,7 +335,13 @@ class App */ protected function load(DbaDefinition $dbaDefinition, ViewDefinition $viewDefinition) { - set_time_limit(0); + if ($this->config->get('system', 'ini_max_execution_time') !== false) { + set_time_limit((int)$this->config->get('system', 'ini_max_execution_time')); + } + + if ($this->config->get('system', 'ini_pcre_backtrack_limit') !== false) { + ini_set('pcre.backtrack_limit', (int)$this->config->get('system', 'ini_pcre_backtrack_limit')); + } // Normally this constant is defined - but not if "pcntl" isn't installed if (!defined('SIGTERM')) { @@ -345,9 +351,6 @@ class App // Ensure that all "strtotime" operations do run timezone independent date_default_timezone_set('UTC'); - // This has to be quite large to deal with embedded private photos - ini_set('pcre.backtrack_limit', 500000); - set_include_path( get_include_path() . PATH_SEPARATOR . $this->getBasePath() . DIRECTORY_SEPARATOR . 'include' . PATH_SEPARATOR @@ -391,7 +394,7 @@ class App } /** - * Returns the current theme name. May be overriden by the mobile theme name. + * Returns the current theme name. May be overridden by the mobile theme name. * * @return string Current theme name or empty string in installation phase * @throws Exception @@ -532,7 +535,7 @@ class App /** * Provide a sane default if nothing is chosen or the specified theme does not exist. * - * @return string Current theme's stylsheet path + * @return string Current theme's stylesheet path * @throws Exception */ public function getCurrentThemeStylesheetPath(): string @@ -555,11 +558,12 @@ class App * @param ModuleHTTPException $httpException The possible HTTP Exception container * @param HTTPInputData $httpInput A library for processing PHP input streams * @param float $start_time The start time of the overall script execution + * @param array $server The $_SERVER array * * @throws HTTPException\InternalServerErrorException * @throws \ImagickException */ - public function runFrontend(App\Router $router, IManagePersonalConfigValues $pconfig, Authentication $auth, App\Page $page, Nav $nav, ModuleHTTPException $httpException, HTTPInputData $httpInput, float $start_time) + public function runFrontend(App\Router $router, IManagePersonalConfigValues $pconfig, Authentication $auth, App\Page $page, Nav $nav, ModuleHTTPException $httpException, HTTPInputData $httpInput, float $start_time, array $server) { $this->profiler->set($start_time, 'start'); $this->profiler->set(microtime(true), 'classinit'); @@ -575,10 +579,12 @@ class App if (!$this->mode->isInstall()) { // Force SSL redirection - if ($this->baseURL->checkRedirectHttps()) { - System::externalRedirect($this->baseURL->get() . '/' . $this->args->getQueryString()); + if ($this->config->get('system', 'force_ssl') && + (empty($server['HTTPS']) || $server['HTTPS'] === 'off') && + !empty($server['REQUEST_METHOD']) && + $server['REQUEST_METHOD'] === 'GET') { + System::externalRedirect($this->baseURL . '/' . $this->args->getQueryString()); } - Core\Hook::callAll('init_1'); }