diff options
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 178 |
1 files changed, 1 insertions, 177 deletions
@@ -37,183 +37,7 @@ * @license GNU Affero General Public License http://www.gnu.org/licenses/ */ -define('INSTALLDIR', dirname(__FILE__)); -define('STATUSNET', true); -define('LACONICA', true); // compatibility - -$user = null; -$action = null; - -function getPath($req) -{ - if ((common_config('site', 'fancy') || !array_key_exists('PATH_INFO', $_SERVER)) - && array_key_exists('p', $req) - ) { - return $req['p']; - } else if (array_key_exists('PATH_INFO', $_SERVER)) { - $path = $_SERVER['PATH_INFO']; - $script = $_SERVER['SCRIPT_NAME']; - if (substr($path, 0, mb_strlen($script)) == $script) { - return substr($path, mb_strlen($script)); - } else { - return $path; - } - } else { - return null; - } -} - -/** - * logs and then displays error messages - * - * @return void - */ -function handleError($error) -{ - try { - - if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) { - return; - } - - $logmsg = "PEAR error: " . $error->getMessage(); - if ($error instanceof PEAR_Exception && common_config('site', 'logdebug')) { - $logmsg .= " : ". $error->toText(); - } - // DB queries often end up with a lot of newlines; merge to a single line - // for easier grepability... - $logmsg = str_replace("\n", " ", $logmsg); - common_log(LOG_ERR, $logmsg); - - // @fixme backtrace output should be consistent with exception handling - if (common_config('site', 'logdebug')) { - $bt = $error->getTrace(); - foreach ($bt as $n => $line) { - common_log(LOG_ERR, formatBacktraceLine($n, $line)); - } - } - if ($error instanceof DB_DataObject_Error - || $error instanceof DB_Error - || ($error instanceof PEAR_Exception && $error->getCode() == -24) - ) { - //If we run into a DB error, assume we can't connect to the DB at all - //so set the current user to null, so we don't try to access the DB - //while rendering the error page. - global $_cur; - $_cur = null; - - $msg = sprintf( - _( - 'The database for %s isn\'t responding correctly, '. - 'so the site won\'t work properly. '. - 'The site admins probably know about the problem, '. - 'but you can contact them at %s to make sure. '. - 'Otherwise, wait a few minutes and try again.' - ), - common_config('site', 'name'), - common_config('site', 'email') - ); - } else { - $msg = _( - 'An important error occured, probably related to email setup. '. - 'Check logfiles for more info..' - ); - } - - $dac = new DBErrorAction($msg, 500); - $dac->showPage(); - - } catch (Exception $e) { - echo _('An error occurred.'); - } - exit(-1); -} - -set_exception_handler('handleError'); - -require_once INSTALLDIR . '/lib/common.php'; - -/** - * Format a backtrace line for debug output roughly like debug_print_backtrace() does. - * Exceptions already have this built in, but PEAR error objects just give us the array. - * - * @param int $n line number - * @param array $line per-frame array item from debug_backtrace() - * @return string - */ -function formatBacktraceLine($n, $line) -{ - $out = "#$n "; - if (isset($line['class'])) $out .= $line['class']; - if (isset($line['type'])) $out .= $line['type']; - if (isset($line['function'])) $out .= $line['function']; - $out .= '('; - if (isset($line['args'])) { - $args = array(); - foreach ($line['args'] as $arg) { - // debug_print_backtrace seems to use var_export - // but this gets *very* verbose! - $args[] = gettype($arg); - } - $out .= implode(',', $args); - } - $out .= ')'; - $out .= ' called at ['; - if (isset($line['file'])) $out .= $line['file']; - if (isset($line['line'])) $out .= ':' . $line['line']; - $out .= ']'; - return $out; -} - -function setupRW() -{ - global $config; - - static $alwaysRW = array('session', 'remember_me'); - - // We ensure that these tables always are used - // on the master DB - - $config['db']['database_rw'] = $config['db']['database']; - $config['db']['ini_rw'] = INSTALLDIR.'/classes/statusnet.ini'; - - foreach ($alwaysRW as $table) { - $config['db']['table_'.$table] = 'rw'; - } -} - -function checkMirror($action_obj, $args) -{ - global $config; - - if (common_config('db', 'mirror') && $action_obj->isReadOnly($args)) { - if (is_array(common_config('db', 'mirror'))) { - // "load balancing", ha ha - $arr = common_config('db', 'mirror'); - $k = array_rand($arr); - $mirror = $arr[$k]; - } else { - $mirror = common_config('db', 'mirror'); - } - - // everyone else uses the mirror - - $config['db']['database'] = $mirror; - } -} - -function isLoginAction($action) -{ - static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd'); - - $login = null; - - if (Event::handle('LoginAction', array($action, &$login))) { - $login = in_array($action, $loginActions); - } - - return $login; -} +require('include.php'); function main() { |