* Proper redirect deletion
[lhc/web/wiklou.git] / includes / Wiki.php
index 02f9430..7945c7a 100644 (file)
@@ -57,18 +57,10 @@ class MediaWiki {
        }
 
        function checkMaxLag( $maxLag ) {
-               global $wgLoadBalancer, $wgShowHostnames;
+               global $wgLoadBalancer;
                list( $host, $lag ) = $wgLoadBalancer->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";
-                       }
+                       wfMaxlagError( $host, $lag, $maxLag );
                        return false;
                } else {
                        return true;
@@ -227,12 +219,17 @@ class MediaWiki {
                }
 
                switch( $title->getNamespace() ) {
-               case NS_IMAGE:
-                       return new ImagePage( $title );
-               case NS_CATEGORY:
-                       return new CategoryPage( $title );
-               default:
-                       return new Article( $title );
+                       case NS_IMAGE:
+                               $file = RepoGroup::singleton()->findFile( $title->getText() );
+                               if( $file && $file->getRedirectedFrom() ) {
+                                       return new Article( $title );
+                               } else {
+                                       return new ImagePage( $title );
+                               }
+                       case NS_CATEGORY:
+                               return new CategoryPage( $title );
+                       default:
+                               return new Article( $title );
                }
        }