From b5a65633d092fefc80b67db7099641b7e95141f0 Mon Sep 17 00:00:00 2001 From: ryan Date: Sun, 15 Feb 2009 20:56:54 +0000 Subject: [PATCH] discover_pingback_server_uri optimizations. Props DD32. fixes #8816 git-svn-id: http://svn.automattic.com/wordpress/trunk@10579 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/comment.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/wp-includes/comment.php b/wp-includes/comment.php index e65f9d356..186d7409a 100644 --- a/wp-includes/comment.php +++ b/wp-includes/comment.php @@ -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);