Make WordPress Core

Ticket #18738: class-http.php.patch

File class-http.php.patch, 1.4 KB (added by shanept, 10 years ago)
  • wp-includes/class-http.php

     
    12311243
    12321244                // We don't need to return the body, so don't. Just execute request and return.
    12331245                if ( ! $r['blocking'] ) {
    1234                         curl_exec( $handle );
     1246                        $this->curl_handles[] = $handle;
     1247                        $this->curl_multi = curl_multi_init();
    12351248
    1236                         if ( $curl_error = curl_error( $handle ) ) {
    1237                                 curl_close( $handle );
    1238                                 return new WP_Error( 'http_request_failed', $curl_error );
     1249                        curl_multi_add_handle( $this->curl_multi, $handle );
     1250                        $curl_error = curl_multi_exec( $this->curl_multi, $active );
     1251                        add_action( 'shutdown', array( $this, 'close_connections' ) );
     1252
     1253                        if ( $curl_error !== CURLM_OK ) {
     1254                                curl_multi_remove_handle( $this->curl_multi, $handle );
     1255                                curl_multi_close( $this->curl_multi );
     1256
     1257                                return new WP_Error( 'http_request_failed', curl_multi_strerror( $curl_error ) );
    12391258                        }
    1240                         if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array( 301, 302 ) ) ) {
    1241                                 curl_close( $handle );
    1242                                 return new WP_Error( 'http_request_failed', __( 'Too many redirects.' ) );
    1243                         }
    12441259
    1245                         curl_close( $handle );
    12461260                        return array( 'headers' => array(), 'body' => '', 'response' => array('code' => false, 'message' => false), 'cookies' => array() );
    12471261                }
    12481262