WordPress.org

Make WordPress Core

Ticket #9078: 9078.4.diff

File 9078.4.diff, 5.0 KB (added by sivel, 5 years ago)
  • wp-includes/http.php

     
    228228                static $working_transport, $blocking_transport, $nonblocking_transport; 
    229229 
    230230                if ( is_null($working_transport) ) { 
    231                         if ( true === WP_Http_ExtHttp::test() ) { 
     231                        if ( true === WP_Http_ExtHttp::test($args) ) { 
    232232                                $working_transport['exthttp'] = new WP_Http_ExtHttp(); 
    233233                                $blocking_transport[] = &$working_transport['exthttp']; 
    234                         } else if ( true === WP_Http_Curl::test() ) { 
     234                        } else if ( true === WP_Http_Curl::test($args) ) { 
    235235                                $working_transport['curl'] = new WP_Http_Curl(); 
    236236                                $blocking_transport[] = &$working_transport['curl']; 
    237                         } else if ( true === WP_Http_Streams::test() ) { 
     237                        } else if ( true === WP_Http_Streams::test($args) ) { 
    238238                                $working_transport['streams'] = new WP_Http_Streams(); 
    239239                                $blocking_transport[] = &$working_transport['streams']; 
    240                         } else if ( true === WP_Http_Fopen::test() && ( isset($args['ssl']) && !$args['ssl'] ) ) { 
     240                        } else if ( true === WP_Http_Fopen::test($args) ) { 
    241241                                $working_transport['fopen'] = new WP_Http_Fopen(); 
    242242                                $blocking_transport[] = &$working_transport['fopen']; 
    243                         } else if ( true === WP_Http_Fsockopen::test() && ( isset($args['ssl']) && !$args['ssl'] ) ) { 
     243                        } else if ( true === WP_Http_Fsockopen::test($args) ) { 
    244244                                $working_transport['fsockopen'] = new WP_Http_Fsockopen(); 
    245245                                $blocking_transport[] = &$working_transport['fsockopen']; 
    246246                        } 
     
    279279                static $working_transport, $blocking_transport, $nonblocking_transport; 
    280280 
    281281                if ( is_null($working_transport) ) { 
    282                         if ( true === WP_Http_ExtHttp::test() ) { 
     282                        if ( true === WP_Http_ExtHttp::test($args) ) { 
    283283                                $working_transport['exthttp'] = new WP_Http_ExtHttp(); 
    284284                                $blocking_transport[] = &$working_transport['exthttp']; 
    285                         } else if ( true === WP_Http_Curl::test() ) { 
     285                        } else if ( true === WP_Http_Curl::test($args) ) { 
    286286                                $working_transport['curl'] = new WP_Http_Curl(); 
    287287                                $blocking_transport[] = &$working_transport['curl']; 
    288                         } else if ( true === WP_Http_Streams::test() ) { 
     288                        } else if ( true === WP_Http_Streams::test($args) ) { 
    289289                                $working_transport['streams'] = new WP_Http_Streams(); 
    290290                                $blocking_transport[] = &$working_transport['streams']; 
    291                         } else if ( true === WP_Http_Fsockopen::test() && ( isset($args['ssl']) && !$args['ssl'] ) ) { 
     291                        } else if ( true === WP_Http_Fsockopen::test($args) ) { 
    292292                                $working_transport['fsockopen'] = new WP_Http_Fsockopen(); 
    293293                                $blocking_transport[] = &$working_transport['fsockopen']; 
    294294                        } 
     
    386386                else 
    387387                        $r['ssl'] = false; 
    388388 
     389                // Determine if this request is to OUR install of WordPress 
     390                if ( stristr(get_bloginfo('url'), $arrURL['host']) ) 
     391                        $r['local'] = true; 
     392                else 
     393                        $r['local'] = false; 
     394 
    389395                if ( is_null( $r['headers'] ) ) 
    390396                        $r['headers'] = array(); 
    391397 
     
    846852         * @static 
    847853         * @return boolean False means this class can not be used, true means it can. 
    848854         */ 
    849         function test() { 
     855        function test($args = array()) { 
    850856                if ( false !== ($option = get_option( 'disable_fsockopen' )) && time()-$option < 43200 ) // 12 hours 
    851857                        return false; 
    852858 
    853                 if ( function_exists( 'fsockopen' ) ) 
     859                if ( function_exists( 'fsockopen' ) && ( isset($args['ssl']) && !$args['ssl'] ) ) 
    854860                        return apply_filters('use_fsockopen_transport', true); 
    855861 
    856862                return false; 
     
    963969                if ( ! function_exists('fopen') || (function_exists('ini_get') && true != ini_get('allow_url_fopen')) ) 
    964970                        return false; 
    965971 
    966                 return apply_filters('use_fopen_transport', true); 
     972                        if ( 
     973                                ( isset($args['ssl']) && !$args['ssl'] ) || 
     974                                ( isset($args['local']) && $args['local'] == true && apply_filters('https_local_ssl_verify', true) != true ) || 
     975                                ( isset($args['local']) && $args['local'] == false && apply_filters('https_ssl_verify', true) != true ) || 
     976                                ( isset($args['sslverify']) && !$args['sslverify'] ) 
     977                        ) 
     978                                return apply_filters('use_fopen_transport', true); 
     979 
     980                return false; 
    967981        } 
    968982} 
    969983 
     
    10941108         * 
    10951109         * @return boolean False means this class can not be used, true means it can. 
    10961110         */ 
    1097         function test() { 
     1111        function test($args = array()) { 
    10981112                if ( ! function_exists('fopen') || (function_exists('ini_get') && true != ini_get('allow_url_fopen')) ) 
    10991113                        return false; 
    11001114 
     
    12211235         * 
    12221236         * @return boolean False means this class can not be used, true means it can. 
    12231237         */ 
    1224         function test() { 
     1238        function test($args = array()) { 
    12251239                if ( function_exists('http_request') ) 
    12261240                        return apply_filters('use_http_extension_transport', true); 
    12271241 
     
    13741388         * 
    13751389         * @return boolean False means this class can not be used, true means it can. 
    13761390         */ 
    1377         function test() { 
     1391        function test($args = array()) { 
    13781392                if ( function_exists('curl_init') && function_exists('curl_exec') ) 
    13791393                        return  apply_filters('use_curl_transport', true); 
    13801394