WordPress.org

Make WordPress Core

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

File 4779.formatting2+non-blocking.diff, 4.9 KB (added by DD32, 10 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?>