WordPress.org

Make WordPress Core

Ticket #8727: 8727.diff

File 8727.diff, 2.6 KB (added by jacobsantos, 6 years ago)

Debugging actions and action for curl object.

  • http.php

     
    3030 * requirement, it will be easy to add the static keyword to the code. It is not 
    3131 * as easy to convert a function to a method after enough code uses the old way. 
    3232 * 
     33 * Debugging includes several actions, which pass different variables for 
     34 * debugging the HTTP API. 
     35 * 
     36 * <strong>http_transport_get_debug</strong> - gives working, nonblocking, and 
     37 * blocking transports. 
     38 * 
     39 * <strong>http_transport_post_debug</strong> - gives working, nonblocking, and 
     40 * blocking transports. 
     41 * 
    3342 * @package WordPress 
    3443 * @subpackage HTTP 
    3544 * @since 2.7 
     
    114123                        } 
    115124                } 
    116125 
     126                if( has_filter('http_transport_get_debug') ) 
     127                        do_action('http_transport_get_debug', $working_transport, $blocking_transport, $nonblocking_transport); 
     128 
    117129                if ( isset($args['blocking']) && !$args['blocking'] ) 
    118130                        return $nonblocking_transport; 
    119131                else 
     
    156168                        } 
    157169                } 
    158170 
     171                if( has_filter('http_transport_post_debug') ) 
     172                        do_action('http_transport_post_debug', $working_transport, $blocking_transport, $nonblocking_transport); 
     173 
    159174                if ( isset($args['blocking']) && !$args['blocking'] ) 
    160175                        return $nonblocking_transport; 
    161176                else 
     
    257272                        $transports = WP_Http::_postTransport($r); 
    258273                } 
    259274 
     275                if( has_action('http_api_debug') ) 
     276                        do_action('http_api_debug', $transports, 'transports_list'); 
     277 
    260278                $response = array( 'headers' => array(), 'body' => '', 'response' => array('code', 'message') ); 
    261279                foreach( (array) $transports as $transport ) { 
    262280                        $response = $transport->request($url, $r); 
    263281 
    264                         if( !is_wp_error($response) ) 
     282                        if( has_action('http_api_debug') ) 
     283                                do_action( 'http_api_debug', $response, 'response', get_class($transport) ); 
     284 
     285                        if( ! is_wp_error($response) ) 
    265286                                return $response; 
    266287                } 
    267288 
     
    409430 
    410431                        if ( $hasChunk ) { 
    411432                                if ( empty($match[1]) ) { 
    412                                         return new WP_Error('http_chunked_decode', __('Does not appear to be chunked encoded or body is malformed.') ); 
     433                                        return $body; 
    413434                                } 
    414435 
    415436                                $length = hexdec( $match[1] ); 
     
    426447                                        break; 
    427448                                } 
    428449                        } else { 
    429                                 return new WP_Error('http_chunked_decode', __('Does not appear to be chunked encoded or body is malformed.') ); 
     450                                return $body; 
    430451                        } 
    431452                } while ( false === $done ); 
    432453        } 
     
    10191040                else 
    10201041                        curl_setopt( $handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 ); 
    10211042 
     1043                do_action_ref_array( 'http_api_curl', &$handle ); 
     1044 
    10221045                if ( ! $r['blocking'] ) { 
    10231046                        curl_exec( $handle ); 
    10241047                        curl_close( $handle );