getVal( 'maxlag' ); if ( !is_null( $maxLag ) ) { list( $host, $lag ) = wfGetLB()->getMaxLag(); if ( $lag > $maxLag ) { header( 'HTTP/1.1 503 Service Unavailable' ); header( 'Retry-After: ' . max( intval( $maxLag ), 5 ) ); header( 'X-Database-Lag: ' . intval( $lag ) ); header( 'Content-Type: text/plain' ); if( $wgShowHostnames ) { echo "Waiting for $host: $lag seconds lagged\n"; } else { echo "Waiting for a database server: $lag seconds lagged\n"; } exit; } } # Initialize MediaWiki base class $mediaWiki = new MediaWiki( $wgRequest, $wgOut ); # Set title from request parameters $wgTitle = $mediaWiki->checkInitialQueries(); $action = $wgRequest->getVal( 'action', 'view' ); wfProfileOut( 'index.php-setup' ); # Send Ajax requests to the Ajax dispatcher. if ( $wgUseAjax && $action == 'ajax' ) { $dispatcher = new AjaxDispatcher(); $dispatcher->performAction(); wfProfileOut( 'index.php' ); $mediaWiki->restInPeace(); exit; } if ( $wgUseFileCache && $wgTitle !== null ) { wfProfileIn( 'index.php-filecache' ); // Raw pages should handle cache control on their own, // even when using file cache. This reduces hits from clients. if ( $action != 'raw' && HTMLFileCache::useFileCache() ) { /* Try low-level file cache hit */ $cache = new HTMLFileCache( $wgTitle, $action ); if ( $cache->isFileCacheGood( /* Assume up to date */ ) ) { /* Check incoming headers to see if client has this cached */ if ( !$wgOut->checkLastModified( $cache->fileCacheTime() ) ) { $cache->loadFromFileCache(); } # Do any stats increment/watchlist stuff $wgArticle = MediaWiki::articleFromTitle( $wgTitle ); $wgArticle->viewUpdates(); # Tell $wgOut that output is taken care of $wgOut->disable(); wfProfileOut( 'index.php-filecache' ); $mediaWiki->finalCleanup(); wfProfileOut( 'index.php' ); $mediaWiki->restInPeace(); exit; } } wfProfileOut( 'index.php-filecache' ); } # Setting global variables in mediaWiki $mediaWiki->setVal( 'DisableHardRedirects', $wgDisableHardRedirects ); $mediaWiki->setVal( 'EnableCreativeCommonsRdf', $wgEnableCreativeCommonsRdf ); $mediaWiki->setVal( 'EnableDublinCoreRdf', $wgEnableDublinCoreRdf ); $mediaWiki->setVal( 'Server', $wgServer ); $mediaWiki->setVal( 'SquidMaxage', $wgSquidMaxage ); $mediaWiki->setVal( 'UseExternalEditor', $wgUseExternalEditor ); $mediaWiki->setVal( 'UsePathInfo', $wgUsePathInfo ); $mediaWiki->performRequestForTitle( $wgTitle, $wgArticle, $wgUser ); $mediaWiki->finalCleanup(); wfProfileOut( 'index.php' ); $mediaWiki->restInPeace();