diff --git a/wp-includes/class-xmlrpc.php b/wp-includes/class-xmlrpc.php index e5d967248c..5524eb4bea 100644 --- a/wp-includes/class-xmlrpc.php +++ b/wp-includes/class-xmlrpc.php @@ -775,7 +775,27 @@ class xmlrpcval { var $mytype=0; function xmlrpcval($val=-1, $type="") { - global $xmlrpcTypes; + global $xmlrpcTypes; + // but this doesn't work, so we redefine it. WEIRD BUG ALERT + $xmlrpcI4="i4"; + $xmlrpcInt="int"; + $xmlrpcBoolean="boolean"; + $xmlrpcDouble="double"; + $xmlrpcString="string"; + $xmlrpcDateTime="dateTime.iso8601"; + $xmlrpcBase64="base64"; + $xmlrpcArray="array"; + $xmlrpcStruct="struct"; + $xmlrpcTypes=array($xmlrpcI4 => 1, + $xmlrpcInt => 1, + $xmlrpcBoolean => 1, + $xmlrpcString => 1, + $xmlrpcDouble => 1, + $xmlrpcDateTime => 1, + $xmlrpcBase64 => 1, + $xmlrpcArray => 2, + $xmlrpcStruct => 3); + // print_r($xmlrpcTypes); $this->me=array(); $this->mytype=0; if ($val!=-1 || $type!="") { @@ -1058,7 +1078,7 @@ function iso8601_decode($idate, $utc=0) { ****************************************************************/ if (!function_exists('phpxmlrpc_decode')) { function phpxmlrpc_decode($xmlrpc_val) { - $kind = $xmlrpc_val->kindOf(); + $kind = @$xmlrpc_val->kindOf(); if($kind == "scalar") { return $xmlrpc_val->scalarval(); diff --git a/wp-includes/functions.php b/wp-includes/functions.php index b711c6225e..cc33126bb7 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -502,29 +502,31 @@ function weblog_ping($server = '', $path = '') { new xmlrpcval(get_settings('home') ,'string'))); $c = new xmlrpc_client($path, $server, 80); $r = $c->send($f); - - if ($debug) { - echo "

Response Object Dump:

-
\n";
-		print_r($r);
-		echo "
\n"; - } - $v = @phpxmlrpc_decode($r->value()); - if (!$r->faultCode()) { - $result['message'] = "

"; - $result['message'] = $result['message'] . $v["message"] . "
\n"; - $result['message'] = $result['message'] . "

"; - } else { - $result['err'] = $r->faultCode(); - $result['message'] = "\n"; - } + if ('0' != $r) { + if ($debug) { + echo "

Response Object Dump:

+
\n";
+			print_r($r);
+			echo "
\n"; + } - if ($debug) print '
' . $result['message'] . '
'; + $v = @phpxmlrpc_decode($r->value()); + if (!$r->faultCode()) { + $result['message'] = "

"; + $result['message'] = $result['message'] . $v["message"] . "
\n"; + $result['message'] = $result['message'] . "

"; + } else { + $result['err'] = $r->faultCode(); + $result['message'] = "\n"; + } + + if ($debug) print '
' . $result['message'] . '
'; + } } function generic_ping($post_id = 0) {