Merge "Handle HTTPS when running jobs asynchronously"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 19 Mar 2016 16:27:43 +0000 (16:27 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 19 Mar 2016 16:27:43 +0000 (16:27 +0000)
1  2 
includes/MediaWiki.php

diff --combined includes/MediaWiki.php
@@@ -246,13 -246,13 +246,13 @@@ class MediaWiki 
                } elseif ( !$this->tryNormaliseRedirect( $title ) ) {
                        // Prevent information leak via Special:MyPage et al (T109724)
                        if ( $title->isSpecialPage() ) {
 -                              $specialPage = SpecialPageFactory::getPage( $title->getDBKey() );
 +                              $specialPage = SpecialPageFactory::getPage( $title->getDBkey() );
                                if ( $specialPage instanceof RedirectSpecialPage ) {
                                        $specialPage->setContext( $this->context );
                                        if ( $this->config->get( 'HideIdentifiableRedirects' )
                                                && $specialPage->personallyIdentifiableTarget()
                                        ) {
 -                                              list( , $subpage ) = SpecialPageFactory::resolveAlias( $title->getDBKey() );
 +                                              list( , $subpage ) = SpecialPageFactory::resolveAlias( $title->getDBkey() );
                                                $target = $specialPage->getRedirect( $subpage );
                                                // target can also be true. We let that case fall through to normal processing.
                                                if ( $target instanceof Title ) {
                $errno = $errstr = null;
                $info = wfParseUrl( $this->config->get( 'Server' ) );
                MediaWiki\suppressWarnings();
+               $host = $info['host'];
+               $port = 80;
+               if ( isset( $info['scheme'] ) && $info['scheme'] == 'https' ) {
+                       $host = "tls://" . $host;
+                       $port = 443;
+               }
+               if ( isset( $info['port'] ) ) {
+                       $port = $info['port'];
+               }
                $sock = fsockopen(
-                       $info['host'],
-                       isset( $info['port'] ) ? $info['port'] : 80,
+                       $host,
+                       $port,
                        $errno,
                        $errstr,
                        // If it takes more than 100ms to connect to ourselves there