X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=index.php;h=ecbfb3eb7b1d692e46d47ba2ae50cfc9fa13a4c3;hb=d2c11925bfafa5a2842267cd90616aa7e1f4882b;hp=674099e7128c1193547cf1fe689a1e6032e0eb50;hpb=1ee79dc3791162f7ef9b92befaef597328266ce1;p=quix0rs-gnu-social.git diff --git a/index.php b/index.php index 674099e712..ecbfb3eb7b 100644 --- a/index.php +++ b/index.php @@ -40,6 +40,12 @@ $_startTime = microtime(true); $_perfCounters = array(); +// We provide all our dependencies through our own autoload. +// This will probably be configurable for distributing with +// system packages (like with Debian apt etc. where included +// libraries are maintained through repositories) +set_include_path('.'); // mainly fixes an issue where /usr/share/{pear,php*}/DB/DataObject.php is _old_ on various systems... + define('INSTALLDIR', dirname(__FILE__)); define('GNUSOCIAL', true); define('STATUSNET', true); // compatibility @@ -125,16 +131,21 @@ function handleError($error) common_config('site', 'email') ); - $dac = new DBErrorAction($msg, 500); - $dac->showPage(); + $erraction = new DBErrorAction($msg, 500); + } elseif ($error instanceof ClientException) { + $erraction = new ClientErrorAction($error->getMessage(), $error->getCode()); + } elseif ($error instanceof ServerException) { + $erraction = new ServerErrorAction($error->getMessage(), $error->getCode(), $error); } else { - $sac = new ServerErrorAction($error->getMessage(), 500, $error); - $sac->showPage(); + // If it wasn't specified more closely which kind of exception it was + $erraction = new ServerErrorAction($error->getMessage(), 500, $error); } + $erraction->showPage(); } catch (Exception $e) { // TRANS: Error message. echo _('An error occurred.'); + exit(-1); } exit(-1); } @@ -255,17 +266,8 @@ function main() $args = $r->map($path); - if (!$args) { - // TRANS: Error message displayed when trying to access a non-existing page. - $cac = new ClientErrorAction(_('Unknown page'), 404); - $cac->showPage(); - return; - } - - $site_ssl = common_config('site', 'ssl'); - // If the request is HTTP and it should be HTTPS... - if ($site_ssl != 'never' && !StatusNet::isHTTPS() && common_is_sensitive($args['action'])) { + if (GNUsocial::useHTTPS() && !GNUsocial::isHTTPS()) { common_redirect(common_local_url($args['action'], $args)); } @@ -309,22 +311,10 @@ function main() if (!class_exists($action_class)) { // TRANS: Error message displayed when trying to perform an undefined action. - $cac = new ClientErrorAction(_('Unknown action'), 404); - $cac->showPage(); - } else { - try { - call_user_func("$action_class::run", $args); - } catch (ClientException $cex) { - $cac = new ClientErrorAction($cex->getMessage(), $cex->getCode()); - $cac->showPage(); - } catch (ServerException $sex) { // snort snort guffaw - $sac = new ServerErrorAction($sex->getMessage(), $sex->getCode(), $sex); - $sac->showPage(); - } catch (Exception $ex) { - $sac = new ServerErrorAction($ex->getMessage(), 500, $ex); - $sac->showPage(); - } + throw new ClientException(_('Unknown action'), 404); } + + call_user_func("$action_class::run", $args); } main();