WordPress.org

Make WordPress Core

Ticket #11888: 11888-streams-test.diff

File 11888-streams-test.diff, 2.9 KB (added by dd32, 8 years ago)
  • wp-includes/http.php

     
    9891015                        $url = preg_replace('|^' . preg_quote($arrURL['scheme'], '|') . '|', 'http', $url);
    9901016
    9911017                // Convert Header array to string.
    992                 $strHeaders = '';
     1018                /*$strHeaders = '';
    9931019                if ( is_array( $r['headers'] ) )
    9941020                        foreach ( $r['headers'] as $name => $value )
    9951021                                $strHeaders .= "{$name}: $value\r\n";
    9961022                else if ( is_string( $r['headers'] ) )
    997                         $strHeaders = $r['headers'];
     1023                        $strHeaders = $r['headers'];*/
    9981024
    9991025                $is_local = isset($args['local']) && $args['local'];
    10001026                $ssl_verify = isset($args['sslverify']) && $args['sslverify'];
     
    10061032                $arrContext = array('http' =>
    10071033                        array(
    10081034                                'method' => strtoupper($r['method']),
    1009                                 'user_agent' => $r['user-agent'],
     1035                                //'user_agent' => $r['user-agent'],
    10101036                                'max_redirects' => $r['redirection'] + 1, // See #11557
    10111037                                'protocol_version' => (float) $r['httpversion'],
    1012                                 'header' => $strHeaders,
     1038                                //'header' => $strHeaders,
    10131039                                'timeout' => $r['timeout'],
     1040                                'ignore_errors' => true, // Return non-200 requests.
    10141041                                'ssl' => array(
    10151042                                                'verify_peer' => $ssl_verify,
    10161043                                                'verify_host' => $ssl_verify
     
    10181045                        )
    10191046                );
    10201047
     1048                if ( is_null( $r['headers'] ) )
     1049                        $r['headers'] = array();
     1050
     1051                if ( is_string($r['headers']) ) {
     1052                        $processedHeaders = WP_Http::processHeaders($r['headers']);
     1053                        $r['headers'] = $processedHeaders['headers'];
     1054                }
     1055
     1056                $initial_user_agent = ini_get('user_agent');
     1057
     1058                if ( !empty($r['headers']) && is_array($r['headers']) ) {
     1059                        $user_agent_extra_headers = '';
     1060                        foreach ( $r['headers'] as $header => $value )
     1061                                $user_agent_extra_headers .= "\r\n$header: $value";
     1062                        @ini_set('user_agent', $r['user-agent'] . $user_agent_extra_headers);
     1063                } else {
     1064                        @ini_set('user_agent', $r['user-agent']);
     1065                }
     1066
    10211067                $proxy = new WP_HTTP_Proxy();
    10221068
    10231069                if ( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) ) {
     
    10391088                else
    10401089                        $handle = fopen($url, 'r', false, $context);
    10411090
    1042                 if ( ! $handle)
     1091                if ( ! $handle )
    10431092                        return new WP_Error('http_request_failed', sprintf(__('Could not open handle for fopen() to %s'), $url));
    10441093
    10451094                $timeout = (int) floor( $r['timeout'] );
     
    10491098                if ( ! $r['blocking'] ) {
    10501099                        stream_set_blocking($handle, 0);
    10511100                        fclose($handle);
     1101                        @ini_set('user_agent', $initial_user_agent); //Clean up any extra headers added
    10521102                        return array( 'headers' => array(), 'body' => '', 'response' => array('code' => false, 'message' => false), 'cookies' => array() );
    10531103                }
    10541104
     
    10571107
    10581108                fclose($handle);
    10591109
     1110                @ini_set('user_agent', $initial_user_agent); //Clean up any extra headers added
     1111
    10601112                $processedHeaders = array();
    10611113                if ( isset( $meta['wrapper_data']['headers'] ) )
    10621114                        $processedHeaders = WP_Http::processHeaders($meta['wrapper_data']['headers']);