Changeset 10507 for trunk/wp-includes/http.php
- Timestamp:
- 02/05/2009 08:46:39 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/http.php
r10410 r10507 238 238 $working_transport['streams'] = new WP_Http_Streams(); 239 239 $blocking_transport[] = &$working_transport['streams']; 240 } else if ( true === WP_Http_Fopen::test() && apply_filters('use_fopen_transport', true) ) {240 } else if ( true === WP_Http_Fopen::test() && apply_filters('use_fopen_transport', true) && ( isset($args['ssl']) && !$args['ssl'] ) ) { 241 241 $working_transport['fopen'] = new WP_Http_Fopen(); 242 242 $blocking_transport[] = &$working_transport['fopen']; 243 } else if ( true === WP_Http_Fsockopen::test() && apply_filters('use_fsockopen_transport', true) ) {243 } else if ( true === WP_Http_Fsockopen::test() && apply_filters('use_fsockopen_transport', true) && ( isset($args['ssl']) && !$args['ssl'] ) ) { 244 244 $working_transport['fsockopen'] = new WP_Http_Fsockopen(); 245 245 $blocking_transport[] = &$working_transport['fsockopen']; … … 283 283 $working_transport['exthttp'] = new WP_Http_ExtHttp(); 284 284 $blocking_transport[] = &$working_transport['exthttp']; 285 } else if ( true === WP_Http_Curl::test() && apply_filters('use_curl_transport', true) ) { 286 $working_transport['curl'] = new WP_Http_Curl(); 287 $blocking_transport[] = &$working_transport['curl']; 285 288 } else if ( true === WP_Http_Streams::test() && apply_filters('use_streams_transport', true) ) { 286 289 $working_transport['streams'] = new WP_Http_Streams(); 287 290 $blocking_transport[] = &$working_transport['streams']; 288 } else if ( true === WP_Http_Fsockopen::test() && apply_filters('use_fsockopen_transport', true) ) {291 } else if ( true === WP_Http_Fsockopen::test() && apply_filters('use_fsockopen_transport', true) && ( isset($args['ssl']) && !$args['ssl'] ) ) { 289 292 $working_transport['fsockopen'] = new WP_Http_Fsockopen(); 290 293 $blocking_transport[] = &$working_transport['fsockopen']; 291 294 } 292 295 293 foreach ( array(' streams', 'fsockopen', 'exthttp') as $transport ) {296 foreach ( array('curl', 'streams', 'fsockopen', 'exthttp') as $transport ) { 294 297 if ( isset($working_transport[$transport]) ) 295 298 $nonblocking_transport[] = &$working_transport[$transport]; … … 359 362 'redirection' => apply_filters( 'http_request_redirection_count', 5), 360 363 'httpversion' => apply_filters( 'http_request_version', '1.0'), 361 'user-agent' => apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version ),364 'user-agent' => apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ), 362 365 'blocking' => true, 363 366 'headers' => array(), 364 367 'body' => null, 365 368 'compress' => false, 366 'decompress' => true 369 'decompress' => true, 370 'sslverify' => true 367 371 ); 368 372 369 373 $r = wp_parse_args( $args, $defaults ); 370 374 $r = apply_filters( 'http_request_args', $r, $url ); 375 376 $arrURL = parse_url($url); 377 378 // Determine if this is a https call and pass that on to the transport functions 379 // so that we can blacklist the transports that do not support ssl verification 380 if ( $arrURL['scheme'] == 'https' || $arrURL['scheme'] == 'ssl' ) 381 $r['ssl'] = true; 382 else 383 $r['ssl'] = false; 371 384 372 385 if ( is_null( $r['headers'] ) ) … … 928 941 'protocol_version' => (float) $r['httpversion'], 929 942 'header' => $strHeaders, 930 'timeout' => $r['timeout'] 943 'timeout' => $r['timeout'], 944 'ssl' => array( 945 'verify_peer' => apply_filters('https_ssl_verify', $r['sslverify']), 946 'verify_host' => apply_filters('https_ssl_verify', $r['sslverify']) 947 ) 931 948 ) 932 949 ); … … 1061 1078 'useragent' => $r['user-agent'], 1062 1079 'headers' => $r['headers'], 1080 'ssl' => array( 1081 'verifypeer' => apply_filters('https_ssl_verify', $r['sslverify']), 1082 'verifyhost' => apply_filters('https_ssl_verify', $r['sslverify']) 1083 ) 1063 1084 ); 1064 1085 … … 1154 1175 1155 1176 $handle = curl_init(); 1177 1156 1178 curl_setopt( $handle, CURLOPT_URL, $url); 1157 1158 // The cURL extension requires that the option be set for the HEAD to 1159 // work properly. 1160 if ( 'HEAD' === $r['method'] ) { 1161 curl_setopt( $handle, CURLOPT_NOBODY, true ); 1162 } 1163 1164 if ( true === $r['blocking'] ) { 1165 curl_setopt( $handle, CURLOPT_HEADER, true ); 1166 curl_setopt( $handle, CURLOPT_RETURNTRANSFER, 1 ); 1167 } else { 1168 curl_setopt( $handle, CURLOPT_HEADER, false ); 1169 curl_setopt( $handle, CURLOPT_NOBODY, true ); 1170 curl_setopt( $handle, CURLOPT_RETURNTRANSFER, 0 ); 1171 } 1172 1179 curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true ); 1180 curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, apply_filters('https_ssl_verify', $r['sslverify']) ); 1181 curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, apply_filters('https_ssl_verify', $r['sslverify']) ); 1173 1182 curl_setopt( $handle, CURLOPT_USERAGENT, $r['user-agent'] ); 1174 curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, 1);1183 curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, $r['timeout'] ); 1175 1184 curl_setopt( $handle, CURLOPT_TIMEOUT, $r['timeout'] ); 1176 1185 curl_setopt( $handle, CURLOPT_MAXREDIRS, $r['redirection'] ); 1186 1187 switch ( $r['method'] ) { 1188 case 'HEAD': 1189 curl_setopt( $handle, CURLOPT_NOBODY, true ); 1190 break; 1191 case 'POST': 1192 curl_setopt( $handle, CURLOPT_POST, true ); 1193 curl_setopt( $handle, CURLOPT_POSTFIELDS, $r['body'] ); 1194 break; 1195 } 1196 1197 if ( true === $r['blocking'] ) 1198 curl_setopt( $handle, CURLOPT_HEADER, true ); 1199 else 1200 curl_setopt( $handle, CURLOPT_HEADER, false ); 1177 1201 1178 1202 // The option doesn't work with safe mode or when open_basedir is set.
Note: See TracChangeset
for help on using the changeset viewer.