WordPress.org

Make WordPress Core

Ticket #16606: 16606.5.diff

File 16606.5.diff, 3.8 KB (added by mdawaffe, 4 years ago)
  • wp-includes/class-http.php

     
    746746         * @return boolean False means this class can not be used, true means it can. 
    747747         */ 
    748748        function test( $args = array() ) { 
    749                 if ( false !== ($option = get_option( 'disable_fsockopen' )) && time()-$option < 43200 ) // 12 hours 
     749                // Doesn't exist 
     750                if ( !function_exists( 'fsockopen' ) ) 
    750751                        return false; 
    751752 
    752                 $is_ssl = isset($args['ssl']) && $args['ssl']; 
     753                // We disabled fsockopen because it's too slow 
     754                if ( false !== ( $option = get_option( 'disable_fsockopen' ) ) && time() - $option < 43200 ) // 12 hours 
     755                        return false; 
    753756 
    754                 if ( ! $is_ssl && function_exists( 'fsockopen' ) ) 
     757                if ( isset( $args['ssl'] ) && $args['ssl'] ) { 
     758                        // We need SSL.  Check if it's available. 
     759                        $use = extension_loaded( 'openssl' ); 
     760                } else { 
     761                        // No SSL needed 
    755762                        $use = true; 
    756                 elseif ( $is_ssl && extension_loaded('openssl') && function_exists( 'fsockopen' ) ) 
    757                         $use = true; 
    758                 else 
    759                         $use = false; 
     763                } 
    760764 
    761                 return apply_filters('use_fsockopen_transport', $use, $args); 
     765                return apply_filters( 'use_fsockopen_transport', $use, $args ); 
    762766        } 
    763767} 
    764768 
     
    929933         * 
    930934         * @return boolean False means this class can not be used, true means it can. 
    931935         */ 
    932         function test($args = array()) { 
    933                 if ( ! function_exists('fopen') || (function_exists('ini_get') && true != ini_get('allow_url_fopen')) ) 
     936        function test( $args = array() ) { 
     937                // Doesn't exist 
     938                if ( !function_exists( 'fopen' ) || ( function_exists( 'ini_get' ) && !ini_get( 'allow_url_fopen' ) ) ) 
    934939                        return false; 
    935940 
    936                 return apply_filters('use_streams_transport', true, $args); 
     941                if ( isset( $args['ssl'] ) && $args['ssl'] ) { 
     942                        // We need SSL.  Check if it's available. 
     943                        $use = extension_loaded( 'openssl' ); 
     944                } else { 
     945                        // No SSL needed 
     946                        $use = true; 
     947                } 
     948 
     949                return apply_filters( 'use_streams_transport', $use, $args ); 
    937950        } 
    938951} 
    939952 
     
    10961109         * 
    10971110         * @return boolean False means this class can not be used, true means it can. 
    10981111         */ 
    1099         function test($args = array()) { 
    1100                 return apply_filters('use_http_extension_transport', function_exists('http_request'), $args ); 
     1112        function test( $args = array() ) { 
     1113                // Doesn't exist 
     1114                if ( !function_exists( 'http_request' ) ) 
     1115                        return false; 
     1116 
     1117                if ( isset( $args['ssl'] ) && $args['ssl'] ) { 
     1118                        // We need SSL.  Check if it's available. 
     1119                        if ( is_callable( 'curl_version' ) && $curl_version = curl_version() ) { 
     1120                                // The HTTP Extensions is ultimately cURL based.  See if we can detect the cURL SSL capability. 
     1121                                $use = CURL_VERSION_SSL & $curl_version['features']; // bitwise 
     1122                        } else { 
     1123                                $use = extension_loaded( 'openssl' ); 
     1124                        } 
     1125                } else { 
     1126                        // No SSL needed 
     1127                        $use = true; 
     1128                } 
     1129 
     1130                return apply_filters( 'use_http_extension_transport', (bool) $use, $args ); 
    11011131        } 
    11021132} 
    11031133 
     
    13121342         * 
    13131343         * @return boolean False means this class can not be used, true means it can. 
    13141344         */ 
    1315         function test($args = array()) { 
    1316                 if ( function_exists('curl_init') && function_exists('curl_exec') ) 
    1317                         return apply_filters('use_curl_transport', true, $args); 
     1345        function test( $args = array() ) { 
     1346                // Doesn't exist 
     1347                if ( !function_exists( 'curl_init' ) || !function_exists( 'curl_exec' ) ) 
     1348                        return false; 
    13181349 
    1319                 return false; 
     1350                if ( isset( $args['ssl'] ) && $args['ssl'] ) { 
     1351                        // We need SSL.  Check if it's available. 
     1352                        if ( is_callable( 'curl_version' ) && $curl_version = curl_version() ) { 
     1353                                $use = CURL_VERSION_SSL & $curl_version['features']; // bitwise 
     1354                        } else { 
     1355                                $use = extension_loaded( 'openssl' ); 
     1356                        } 
     1357                } else { 
     1358                        // No SSL needed 
     1359                        $use = true; 
     1360                } 
     1361 
     1362                return apply_filters( 'use_curl_transport', (bool) $use, $args ); 
    13201363        } 
    13211364} 
    13221365