WordPress.org

Make WordPress Core

Ticket #4779: 4779.r8585.diff

File 4779.r8585.diff, 1.8 KB (added by santosj, 7 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";