discover_pingback_server_uri optimizations. Props DD32. fixes #8816

git-svn-id: https://develop.svn.wordpress.org/trunk@10579 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan Boren 2009-02-15 20:56:54 +00:00
parent cebaec1ed5
commit 23af8f4060
1 changed files with 12 additions and 1 deletions

View File

@ -1254,7 +1254,12 @@ function discover_pingback_server_uri($url, $deprecated = 2048) {
if ( ! isset( $parsed_url['host'] ) ) // Not an URL. This should never happen.
return false;
$response = wp_remote_get( $url, array( 'timeout' => 2, 'httpversion' => '1.1' ) );
//Do not search for a pingback server on our own uploads
$uploads_dir = wp_upload_dir();
if ( 0 === strpos($url, $uploads_dir['baseurl']) )
return false;
$response = wp_remote_head( $url, array( 'timeout' => 2, 'httpversion' => '1.0' ) );
if ( is_wp_error( $response ) )
return false;
@ -1266,6 +1271,12 @@ function discover_pingback_server_uri($url, $deprecated = 2048) {
if ( isset( $response['headers']['content-type'] ) && preg_match('#(image|audio|video|model)/#is', $response['headers']['content-type']) )
return false;
// Now do a GET since we're going to look in the html headers (and we're sure its not a binary file)
$response = wp_remote_get( $url, array( 'timeout' => 2, 'httpversion' => '1.0' ) );
if ( is_wp_error( $response ) )
return false;
$contents = $response['body'];
$pingback_link_offset_dquote = strpos($contents, $pingback_str_dquote);