| | 564 | function weblog_ping($server = '', $path = '') { |
|---|
| | 565 | $f = new xmlrpcmsg('weblogUpdates.ping', |
|---|
| | 566 | array(new xmlrpcval(get_settings('blog_name'), 'string'), |
|---|
| | 567 | new xmlrpcval(get_settings('blog_url') ,'string'))); |
|---|
| | 568 | $c = new xmlrpc_client($path, $server, 80); |
|---|
| | 569 | $r = $c->send($f); |
|---|
| | 570 | if (!$r) { die("send failed"); } |
|---|
| | 571 | |
|---|
| | 572 | if ($debug) { |
|---|
| | 573 | print "<h3>Response Object Dump:</h3>\n"; |
|---|
| | 574 | print "<pre>\n"; |
|---|
| | 575 | print_r($r); |
|---|
| | 576 | print "</pre>\n"; |
|---|
| | 577 | } |
|---|
| | 578 | |
|---|
| | 579 | $v=@xmlrpc_decode($r->value()); |
|---|
| | 580 | if (!$r->faultCode()) { |
|---|
| | 581 | $result['message'] = "<p class=\"rpcmsg\">"; |
|---|
| | 582 | $result['message'] = $result['message'] . $v["message"] . "<br />\n"; |
|---|
| | 583 | $result['message'] = $result['message'] . "</p>"; |
|---|
| | 584 | } else { |
|---|
| | 585 | $result['err'] = $r->faultCode(); |
|---|
| | 586 | $result['message'] = "<!--\n"; |
|---|
| | 587 | $result['message'] = $result['message'] . "Fault: "; |
|---|
| | 588 | $result['message'] = $result['message'] . "Code: " . $r->faultCode(); |
|---|
| | 589 | $result['message'] = $result['message'] . " Reason '" .$r->faultString()."'<BR>"; |
|---|
| | 590 | $result['message'] = $result['message'] . "-->\n"; |
|---|
| | 591 | } |
|---|
| | 592 | |
|---|
| | 593 | print '<blockquote>' . $result['message'] . '</blockquote>'; |
|---|
| | 594 | } |
|---|
| | 595 | |
|---|
| | 596 | function generic_ping($post_id = 0) { |
|---|
| | 597 | $services = get_settings('ping_sites'); |
|---|
| | 598 | $services = preg_replace("|(\s)+|", '$1', $serivces); // Kill dupe lines |
|---|
| | 599 | $services = explode("\n", trim($services)); |
|---|
| | 600 | foreach ($services as $service) { |
|---|
| | 601 | $uri = parse_url($service); |
|---|
| | 602 | weblog_ping($uri['host'], $uri['path']); |
|---|
| | 603 | } |
|---|
| | 604 | } |
|---|
| | 605 | |
|---|
| | 606 | add_action('publish_post', 'generic_ping'); |
|---|