CurlHttpRequest: Follow redirects even under open_basedir
[lhc/web/wiklou.git] / includes / HttpFunctions.php
index 3749b1c..621692a 100644 (file)
@@ -59,7 +59,6 @@ class Http {
         */
        public static function request( $method, $url, $options = array() ) {
                wfDebug( "HTTP: $method: $url\n" );
-               wfProfileIn( __METHOD__ . "-$method" );
 
                $options['method'] = strtoupper( $method );
 
@@ -77,7 +76,6 @@ class Http {
                if ( $status->isOK() ) {
                        $content = $req->getContent();
                }
-               wfProfileOut( __METHOD__ . "-$method" );
                return $content;
        }
 
@@ -788,7 +786,6 @@ class CurlHttpRequest extends MWHttpRequest {
                $this->parseHeader();
                $this->setStatus();
 
-
                return $this->status;
        }
 
@@ -796,17 +793,19 @@ class CurlHttpRequest extends MWHttpRequest {
         * @return bool
         */
        public function canFollowRedirects() {
-               if ( strval( ini_get( 'open_basedir' ) ) !== '' || wfIniGetBool( 'safe_mode' ) ) {
-                       wfDebug( "Cannot follow redirects in safe mode\n" );
-                       return false;
-               }
-
                $curlVersionInfo = curl_version();
                if ( $curlVersionInfo['version_number'] < 0x071304 ) {
                        wfDebug( "Cannot follow redirects with libcurl < 7.19.4 due to CVE-2009-0037\n" );
                        return false;
                }
 
+               if ( version_compare( PHP_VERSION, '5.6.0', '<' ) ) {
+                       if ( strval( ini_get( 'open_basedir' ) ) !== '' || wfIniGetBool( 'safe_mode' ) ) {
+                               wfDebug( "Cannot follow redirects in safe mode\n" );
+                               return false;
+                       }
+               }
+
                return true;
        }
 }
@@ -955,7 +954,6 @@ class PhpHttpRequest extends MWHttpRequest {
                }
                fclose( $fh );
 
-
                return $this->status;
        }
 }