updated pingback() to use IXR -- now we aren't using phpxmlrpc anywhere anymore

git-svn-id: https://develop.svn.wordpress.org/trunk@1682 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
michelvaldrighi 2004-09-17 14:11:28 +00:00
parent 7e597f05a4
commit 511ff56068
1 changed files with 16 additions and 39 deletions

View File

@ -495,7 +495,7 @@ function weblog_ping($server = '', $path = '') {
// using a timeout of 3 seconds should be enough to cover slow servers
$client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path));
$client->timeout = 3;
$client->useragent .= ' / WordPress '.$wp_version;
$client->useragent .= ' -- WordPress/'.$wp_version;
// when set to true, this outputs debug messages by itself
$client->debug = false;
@ -631,10 +631,11 @@ function debug_fclose($fp) {
}
function pingback($content, $post_ID) {
include_once (ABSPATH . WPINC . '/class-xmlrpc.php');
include_once (ABSPATH . WPINC . '/class-xmlrpcs.php');
// original code by Mort (http://mort.mine.nu:8080)
global $wp_version;
include_once (ABSPATH . WPINC . '/class-IXR.php');
// original code by Mort (http://mort.mine.nu:8080)
$log = debug_fopen('./pingback.log', 'a');
$post_links = array();
debug_fwrite($log, 'BEGIN '.time()."\n");
@ -750,22 +751,6 @@ include_once (ABSPATH . WPINC . '/class-xmlrpcs.php');
debug_fwrite($log, "Pingback server not found\n\n*************************\n\n");
@fclose($fp);
} else {
debug_fwrite($log,"\n\nPingback server data\n");
// Assuming there's a "http://" bit, let's get rid of it
$host_clear = substr($pingback_server_url, 7);
// the trailing slash marks the end of the server name
$host_end = strpos($host_clear, '/');
// Another clear cut
$host_len = $host_end-$host_start;
$host = substr($host_clear, 0, $host_len);
debug_fwrite($log, 'host: '.$host."\n");
// If we got the server name right, the rest of the string is the server path
$path = substr($host_clear,$host_end);
debug_fwrite($log, 'path: '.$path."\n\n");
// Now, the RPC call
$method = 'pingback.ping';
@ -774,26 +759,18 @@ include_once (ABSPATH . WPINC . '/class-xmlrpcs.php');
$pagelinkedfrom = get_permalink($post_ID);
debug_fwrite($log, $pagelinkedfrom."\n");
$client = new xmlrpc_client($path, $host, 80);
$message = new xmlrpcmsg($method, array(new xmlrpcval($pagelinkedfrom), new xmlrpcval($pagelinkedto)));
$result = $client->send($message);
if ($result){
if (!$result->value()){
debug_fwrite($log, $result->faultCode().' -- '.$result->faultString());
} else {
$value = phpxmlrpc_decode($result->value());
if (is_array($value)) {
$value_arr = '';
foreach($value as $blah) {
$value_arr .= $blah.' |||| ';
// using a timeout of 3 seconds should be enough to cover slow servers
$client = new IXR_Client($pingback_server_url);
$client->timeout = 3;
$client->useragent .= ' -- WordPress/'.$wp_version;
// when set to true, this outputs debug messages by itself
$client->debug = false;
$client->query('pingback.ping', array($pagelinkedfrom, $pagelinkedto));
if (!$client->query('pingback.ping', array($pagelinkedfrom, $pagelinkedto))) {
debug_fwrite($log, "Error.\n Fault code: ".$client->getErrorCode()." : ".$client->getErrorMessage()."\n");
}
debug_fwrite($log, $value_arr);
} else {
debug_fwrite($log, $value);
}
}
}
@fclose($fp);
}
}