WordPress.org

Make WordPress Core

Ticket #4779: 4779.formatting2+non-blocking.diff

File 4779.formatting2+non-blocking.diff, 4.9 KB (added by DD32, 6 years ago)
  • wp-includes/http.php

     
    115115                $defaults = array( 
    116116                        'method' => 'GET', 'timeout' => 3, 
    117117                        'redirection' => 5, 'redirected' => false, 
    118                         'httpversion' => '1.0' 
     118                        'httpversion' => '1.0', 'blocking' => true 
    119119                ); 
    120120 
    121121                $r = wp_parse_args( $args, $defaults ); 
     
    261261                $response = array('code' => 0, 'message' => ''); 
    262262 
    263263                $newheaders = array(); 
    264                 foreach($headers as $tempheader) { 
     264                foreach ( $headers as $tempheader ) { 
    265265                        if ( empty($tempheader) ) 
    266266                                continue; 
    267267 
     
    306306        function request($url, $args = array(), $headers = null, $body = null) { 
    307307                $defaults = array( 
    308308                        'method' => 'GET', 'timeout' => 3, 
    309                         'redirection' => 5, 'httpversion' => '1.0' 
     309                        'redirection' => 5, 'httpversion' => '1.0', 
     310                        'blocking' => true 
    310311                ); 
    311312 
    312313                $r = wp_parse_args( $args, $defaults ); 
     
    323324                                $arrURL['host'] = 'ssl://' . $arrURL['host']; 
    324325                                $arrURL['port'] = apply_filters('http_request_default_port', 443); 
    325326                                $secure_transport = true; 
     327                        } else { 
     328                                $arrURL['port'] = apply_filters('http_request_default_port', 80); 
    326329                        } 
    327                         else 
    328                                 $arrURL['port'] = apply_filters('http_request_default_port', 80); 
     330                } else { 
     331                        $arrURL['port'] = apply_filters('http_request_port', $arrURL['port']); 
    329332                } 
    330                 else 
    331                         $arrURL['port'] = apply_filters('http_request_port', $arrURL['port']); 
    332333 
    333334                if ( true === $secure_transport ) 
    334335                        $error_reporting = error_reporting(0); 
    335336 
    336337                $handle = fsockopen($arrURL['host'], $arrURL['port'], $iError, $strError, apply_filters('http_request_timeout', absint($r['timeout']) ) ); 
    337338 
    338                 if ( false === $handle ) { 
     339                if ( false === $handle ) 
    339340                        return new WP_Error('http_request_failed', $iError . ': ' . $strError); 
    340                 } 
    341341 
    342342                $requestPath = $arrURL['path'] . ( isset($arrURL['query']) ? '?' . $arrURL['query'] : '' ); 
    343                 $requestPath = (empty($requestPath)) ? '/' : $requestPath; 
     343                $requestPath = empty($requestPath) ? '/' : $requestPath; 
    344344 
    345345                $strHeaders = ''; 
    346346                $strHeaders .= strtoupper($r['method']) . ' ' . $requestPath . ' HTTP/' . $r['httpversion'] . "\r\n"; 
    347347                $strHeaders .= 'Host: ' . $arrURL['host'] . "\r\n"; 
    348348 
    349349                if ( is_array($header) ) { 
    350                         foreach( (array) $this->getHeaders() as $header => $headerValue) 
     350                        foreach ( (array) $this->getHeaders() as $header => $headerValue ) 
    351351                                $strHeaders .= $header . ': ' . $headerValue . "\r\n"; 
    352                 } else 
     352                } else { 
    353353                        $strHeaders .= $header; 
     354                } 
    354355 
    355356                $strHeaders .= "\r\n"; 
    356357 
     
    359360 
    360361                fwrite($handle, $strHeaders); 
    361362 
     363                if ( ! $r['blocking']) ) 
     364                        return array( 'headers' => array(), 'body' => '', 'response' => array() ); 
     365 
    362366                $strResponse = ''; 
    363367                while ( ! feof($handle) ) 
    364368                        $strResponse .= fread($handle, 4096); 
     
    430434 
    431435                $defaults = array( 
    432436                        'method' => 'GET', 'timeout' => 3, 
    433                         'redirection' => 5, 'httpversion' => '1.0' 
     437                        'redirection' => 5, 'httpversion' => '1.0', 
     438                        'blocking' => true 
    434439                ); 
    435440 
    436441                $r = wp_parse_args( $args, $defaults ); 
     
    448453                if ( function_exists('stream_set_timeout') ) 
    449454                        stream_set_timeout($handle, apply_filters('http_request_timeout', $r['timeout']) ); 
    450455 
     456                if ( ! $r['blocking']) ) 
     457                        return array( 'headers' => array(), 'body' => '', 'response' => array() ); 
     458 
    451459                $strResponse = ''; 
    452460                while ( ! feof($handle) ) 
    453461                        $strResponse .= fread($handle, 4096); 
     
    507515        function request($url, $args = array(), $headers = null, $body = null) { 
    508516                $defaults = array( 
    509517                        'method' => 'GET', 'timeout' => 3, 
    510                         'redirection' => 5, 'httpversion' => '1.0' 
     518                        'redirection' => 5, 'httpversion' => '1.0', 
     519                        'blocking' => true 
    511520                ); 
    512521 
    513522                $r = wp_parse_args( $args, $defaults ); 
     
    536545 
    537546                stream_set_timeout($handle, apply_filters('http_request_stream_timeout', $this->timeout) ); 
    538547 
    539                 if (! $handle) 
     548                if ( ! $handle) 
    540549                        return new WP_Error('http_request_failed', sprintf(__('Could not open handle for fopen() to %s'), $url)); 
    541550 
     551                if ( ! $r['blocking']) ) 
     552                        return array( 'headers' => array(), 'body' => '', 'response' => array() ); 
     553 
    542554                $strResponse = stream_get_contents($handle); 
    543555                $meta = stream_get_meta_data($handle); 
    544556 
     
    574586 * Requires the HTTP extension to be installed. 
    575587 * 
    576588 * Last ditch effort to retrieve the URL before complete failure. 
     589 * Does not support non-blocking requests. 
    577590 * 
    578591 * @package WordPress 
    579592 * @subpackage HTTP 
     
    598611                $defaults = array( 
    599612                        'method' => 'GET', 'timeout' => 3, 
    600613                        'redirection' => 5, 'httpversion' => '1.0', 
    601                         'user_agent' => apply_filters('http_headers_useragent', 'WordPress/' . $wp_version) 
     614                        'blocking' => true, 'user_agent' => apply_filters('http_headers_useragent', 'WordPress/' . $wp_version) 
    602615                ); 
    603616 
    604617                $r = wp_parse_args( $args, $defaults ); 
     
    860873        return $response['body']; 
    861874} 
    862875 
    863 ?> 
    864  No newline at end of file 
     876?>