Merge "Random documentation tweaks"
[lhc/web/wiklou.git] / includes / HttpFunctions.php
index 78c2ac7..9093c83 100644 (file)
@@ -30,7 +30,7 @@
  * @ingroup HTTP
  */
 class Http {
-       static $httpEngine = false;
+       static public $httpEngine = false;
 
        /**
         * Perform an HTTP request
@@ -130,7 +130,8 @@ class Http {
                        $domainParts = array_reverse( $domainParts );
 
                        $domain = '';
-                       for ( $i = 0; $i < count( $domainParts ); $i++ ) {
+                       $countParts = count( $domainParts );
+                       for ( $i = 0; $i < $countParts; $i++ ) {
                                $domainPart = $domainParts[$i];
                                if ( $i == 0 ) {
                                        $domain = $domainPart;
@@ -294,8 +295,11 @@ class MWHttpRequest {
                                return new CurlHttpRequest( $url, $options );
                        case 'php':
                                if ( !wfIniGetBool( 'allow_url_fopen' ) ) {
-                                       throw new MWException( __METHOD__ . ': allow_url_fopen needs to be enabled for pure PHP' .
-                                               ' http requests to work. If possible, curl should be used instead. See http://php.net/curl.' );
+                                       throw new MWException( __METHOD__ . ': allow_url_fopen ' .
+                                               'needs to be enabled for pure PHP http requests to ' .
+                                               'work. If possible, curl should be used instead. See ' .
+                                               'http://php.net/curl.'
+                                       );
                                }
                                return new PhpHttpRequest( $url, $options );
                        default:
@@ -642,12 +646,16 @@ class MWHttpRequest {
        /**
         * Returns the final URL after all redirections.
         *
-        * Relative values of the "Location" header are incorrect as stated in RFC, however they do happen and modern browsers support them.
-        * This function loops backwards through all locations in order to build the proper absolute URI - Marooned at wikia-inc.com
+        * Relative values of the "Location" header are incorrect as
+        * stated in RFC, however they do happen and modern browsers
+        * support them.  This function loops backwards through all
+        * locations in order to build the proper absolute URI - Marooned
+        * at wikia-inc.com
         *
-        * Note that the multiple Location: headers are an artifact of CURL -- they
-        * shouldn't actually get returned this way. Rewrite this when bug 29232 is
-        * taken care of (high-level redirect handling rewrite).
+        * Note that the multiple Location: headers are an artifact of
+        * CURL -- they shouldn't actually get returned this way. Rewrite
+        * this when bug 29232 is taken care of (high-level redirect
+        * handling rewrite).
         *
         * @return string
         */
@@ -678,7 +686,8 @@ class MWHttpRequest {
                                } else {
                                        $url = parse_url( $this->url );
                                        if ( isset( $url['host'] ) ) {
-                                               return $url['scheme'] . '://' . $url['host'] . $locations[$countLocations - 1];
+                                               return $url['scheme'] . '://' . $url['host'] .
+                                                       $locations[$countLocations - 1];
                                        }
                                }
                        } else {
@@ -730,7 +739,12 @@ class CurlHttpRequest extends MWHttpRequest {
 
                $this->curlOptions[CURLOPT_PROXY] = $this->proxy;
                $this->curlOptions[CURLOPT_TIMEOUT] = $this->timeout;
-               $this->curlOptions[CURLOPT_CONNECTTIMEOUT_MS] = $this->connectTimeout * 1000;
+
+               // Only supported in curl >= 7.16.2
+               if ( defined( 'CURLOPT_CONNECTTIMEOUT_MS' ) ) {
+                       $this->curlOptions[CURLOPT_CONNECTTIMEOUT_MS] = $this->connectTimeout * 1000;
+               }
+
                $this->curlOptions[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0;
                $this->curlOptions[CURLOPT_WRITEFUNCTION] = $this->callback;
                $this->curlOptions[CURLOPT_HEADERFUNCTION] = array( $this, "readHeader" );
@@ -842,8 +856,8 @@ class PhpHttpRequest extends MWHttpRequest {
                        $this->postData = wfArrayToCgi( $this->postData );
                }
 
-               if ( $this->parsedUrl['scheme'] != 'http' &&
-                        $this->parsedUrl['scheme'] != 'https' ) {
+               if ( $this->parsedUrl['scheme'] != 'http'
+                       && $this->parsedUrl['scheme'] != 'https' ) {
                        $this->status->fatal( 'http-invalid-scheme', $this->parsedUrl['scheme'] );
                }