WordPress.org

Make WordPress Core

Ticket #16855: 16855.3.patch

File 16855.3.patch, 2.2 KB (added by hakre, 4 years ago)

plus 'followlocation' for WP HTTP Stream Transport (for your reading pleasure)

  • wp-includes/class-http.php

    ### Eclipse Workspace Patch 1.0
    #P wordpress-trunk
     
    981981        function request($url, $args = array()) { 
    982982                $defaults = array( 
    983983                        'method' => 'GET', 'timeout' => 5, 
    984                         'redirection' => 5, 'httpversion' => '1.0', 
     984                        'redirection' => 5, 'followlocation' => true, 
     985                        'httpversion' => '1.0', 
    985986                        'blocking' => true, 
    986987                        'headers' => array(), 'body' => null, 'cookies' => array() 
    987988                ); 
     
    10271028                                'method' => strtoupper($r['method']), 
    10281029                                'user_agent' => $r['user-agent'], 
    10291030                                'max_redirects' => $r['redirection'] + 1, // See #11557 
     1031                                'follow_location' => (int) $r['followlocation'], 
    10301032                                'protocol_version' => (float) $r['httpversion'], 
    10311033                                'header' => $strHeaders, 
    10321034                                'ignore_errors' => true, // Return non-200 requests. 
     
    13041306        function request($url, $args = array()) { 
    13051307                $defaults = array( 
    13061308                        'method' => 'GET', 'timeout' => 5, 
    1307                         'redirection' => 5, 'httpversion' => '1.0', 
    1308                         'blocking' => true, 
     1309                        'redirection' => 5, 'followlocation' => !(ini_get('safe_mode') || ini_get('open_basedir')),  
     1310                        'httpversion' => '1.0', 'blocking' => true, 
    13091311                        'headers' => array(), 'body' => null, 'cookies' => array() 
    13101312                ); 
    13111313 
     
    13671369                curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, $ssl_verify ); 
    13681370                curl_setopt( $handle, CURLOPT_USERAGENT, $r['user-agent'] ); 
    13691371                curl_setopt( $handle, CURLOPT_MAXREDIRS, $r['redirection'] ); 
     1372                curl_setopt( $handle, CURLOPT_FOLLOWLOCATION, $r['followlocation'] ); 
    13701373 
    13711374                switch ( $r['method'] ) { 
    13721375                        case 'HEAD': 
     
    14481451                curl_close( $handle ); 
    14491452 
    14501453                // See #11305 - When running under safe mode, redirection is disabled above. Handle it manually. 
    1451                 if ( !empty($theHeaders['headers']['location']) && (ini_get('safe_mode') || ini_get('open_basedir')) ) { 
     1454                if ( $r['followlocation'] && !empty($theHeaders['headers']['location']) && (ini_get('safe_mode') || ini_get('open_basedir')) ) { 
    14521455                        if ( $r['redirection']-- > 0 ) { 
    14531456                                return $this->request($theHeaders['headers']['location'], $r); 
    14541457                        } else {