X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=index.php;h=d96f2396e41e110482d2a66a52c5b3050e3604b0;hb=aa004d03aab4ef8035cc204bc8718c9d2296100a;hp=674099e7128c1193547cf1fe689a1e6032e0eb50;hpb=1ee79dc3791162f7ef9b92befaef597328266ce1;p=quix0rs-gnu-social.git diff --git a/index.php b/index.php index 674099e712..d96f2396e4 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 @@ -87,9 +93,9 @@ function handleError($error) return; } - $logmsg = "PEAR error: " . $error->getMessage(); - if ($error instanceof PEAR_Exception && common_config('site', 'logdebug')) { - $logmsg .= " : ". $error->toText(); + $logmsg = "Exception thrown: " . _ve($error->getMessage()); + if ($error instanceof PEAR_Exception && common_config('log', 'debugtrace')) { + $logmsg .= " PEAR: ". $error->toText(); } // DB queries often end up with a lot of newlines; merge to a single line // for easier grepability... @@ -97,7 +103,7 @@ function handleError($error) common_log(LOG_ERR, $logmsg); // @fixme backtrace output should be consistent with exception handling - if (common_config('site', 'logdebug')) { + if (common_config('log', 'debugtrace')) { $bt = $error->getTrace(); foreach ($bt as $n => $line) { common_log(LOG_ERR, formatBacktraceLine($n, $line)); @@ -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();