WordPress.org

Make WordPress Core

Ticket #4779: 4779.r8585.diff

File 4779.r8585.diff, 1.8 KB (added by santosj, 10 years ago)

Fixes major issues with fsockopen transport, based off r8585

  • http.php

     
    125125                if ( is_null($working_transport) ) {
    126126                        if ( true === WP_Http_ExtHttp::test() && apply_filters('use_http_extension_transport', true) )
    127127                                $working_transport[] = new WP_Http_ExtHttp();
     128                        else if ( true === WP_Http_Fsockopen::test() && apply_filters('use_fsockopen_transport', true) )
     129                                $working_transport[] = new WP_Http_Fsockopen();
    128130                        else if ( true === WP_Http_Streams::test() && apply_filters('use_streams_transport', true) )
    129131                                $working_transport[] = new WP_Http_Streams();
    130                         else if ( true === WP_Http_Fsockopen::test() && apply_filters('use_fsockopen_transport', true) )
    131                                 $working_transport[] = new WP_Http_Fsockopen();
    132132                }
    133133
    134134                return $working_transport;
     
    195195                        $headers = $processedHeaders['headers'];
    196196                }
    197197
    198                 if ( ! isset($headers['user-agent']) || ! isset($headers['User-Agent']) )
     198                if ( isset($headers['User-Agent']) ) {
     199                        $headers['user-agent'] = $headers['User-Agent'];
     200                        unset($headers['User-Agent']);
     201                }
     202
     203                if ( ! isset($headers['user-agent']) )
    199204                        $headers['user-agent'] = $r['user-agent'];
    200205
    201206                if ( is_null($body) ) {
     
    441446                $strHeaders .= strtoupper($r['method']) . ' ' . $requestPath . ' HTTP/' . $r['httpversion'] . "\r\n";
    442447                $strHeaders .= 'Host: ' . $arrURL['host'] . "\r\n";
    443448
    444                 if ( is_array($header) ) {
    445                         foreach ( (array) $this->getHeaders() as $header => $headerValue )
     449                if ( is_array($headers) ) {
     450                        foreach ( (array) $headers as $header => $headerValue )
    446451                                $strHeaders .= $header . ': ' . $headerValue . "\r\n";
    447452                } else {
    448                         $strHeaders .= $header;
     453                        $strHeaders .= $headers;
    449454                }
    450455
    451456                $strHeaders .= "\r\n";