In $wgConf, allow wgCanonicalServer to be false or absent
authorTim Starling <tstarling@wikimedia.org>
Thu, 16 May 2013 23:12:32 +0000 (09:12 +1000)
committerTim Starling <tstarling@wikimedia.org>
Thu, 4 Jul 2013 05:50:57 +0000 (05:50 +0000)
According to the doc comment, $wgCanonicalServer can be false, and this
is equivalent to it being set to $wgServer. So don't require it to be
set for foreign wikis in $wgConf, just use the same interpretation.

This makes it slightly easier to set up CentralAuth test servers.

Change-Id: I5eb11669236ed2a71d08f53a1393a3d5e8f5f770

includes/WikiMap.php

index 5d90b12..da4416d 100644 (file)
@@ -40,10 +40,15 @@ class WikiMap {
                if ( $major === null ) {
                        return null;
                }
-               $canonicalServer = $wgConf->get( 'wgCanonicalServer', $wikiID, $major,
-                       array( 'lang' => $minor, 'site' => $major ) );
                $server = $wgConf->get( 'wgServer', $wikiID, $major,
                        array( 'lang' => $minor, 'site' => $major ) );
+
+               $canonicalServer = $wgConf->get( 'wgCanonicalServer', $wikiID, $major,
+                       array( 'lang' => $minor, 'site' => $major ) );
+               if ( $canonicalServer === false || $canonicalServer === null ) {
+                       $canonicalServer = $server;
+               }
+
                $path = $wgConf->get( 'wgArticlePath', $wikiID, $major,
                        array( 'lang' => $minor, 'site' => $major ) );
                return new WikiReference( $major, $minor, $canonicalServer, $path, $server );