WordPress.org

Make WordPress Core

Ticket #8476: 8476.2.diff

File 8476.2.diff, 1.5 KB (added by jacobsantos, 12 years ago)

Actual fix.

  • http.php

     
    672672                if ( function_exists('stream_get_meta_data') ) {
    673673                        $meta = stream_get_meta_data($handle);
    674674                        $theHeaders = $meta['wrapper_data'];
     675                        if( isset( $meta['wrapper_data']['headers'] ) )
     676                                $theHeaders = $meta['wrapper_data']['headers'];
    675677                } else {
     678                        if( ! isset( $http_response_header ) )
     679                                global $http_response_header;
    676680                        $theHeaders = $http_response_header;
    677681                }
    678682
     
    793797
    794798                $strResponse = stream_get_contents($handle);
    795799                $meta = stream_get_meta_data($handle);
    796                 $processedHeaders = WP_Http::processHeaders($meta['wrapper_data']);
    797800
     801                $processedHeaders = array();
     802                if( isset( $meta['wrapper_data']['headers'] ) )
     803                        $processedHeaders = WP_Http::processHeaders($meta['wrapper_data']['headers']);
     804                else
     805                        $processedHeaders = WP_Http::processHeaders($meta['wrapper_data']);
     806
    798807                if ( ! empty( $strResponse ) && isset( $processedHeaders['headers']['transfer-encoding'] ) && 'chunked' == $processedHeaders['headers']['transfer-encoding'] )
    799808                        $strResponse = WP_Http::chunkTransferDecode($strResponse);
    800809
     
    10311040                                return new WP_Error('http_request_failed', $curl_error);
    10321041                        if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array(301, 302) ) )
    10331042                                return new WP_Error('http_request_failed', __('Too many redirects.'));
    1034                        
     1043
    10351044                        $theHeaders = array( 'headers' => array() );
    10361045                        $theBody = '';
    10371046                }