summaryrefslogtreecommitdiff
path: root/includes/xmlrpc.inc
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-12-18 16:49:10 +0000
committerDries Buytaert <dries@buytaert.net>2009-12-18 16:49:10 +0000
commit5f069ef95a8887271828c0ccc9fffa20e0fd947e (patch)
tree105894b31696b41cf07932410a98abb752781262 /includes/xmlrpc.inc
parent0ec5405705b1cf34fa8e7295f49aa15e5211aa35 (diff)
downloadbrdo-5f069ef95a8887271828c0ccc9fffa20e0fd947e.tar.gz
brdo-5f069ef95a8887271828c0ccc9fffa20e0fd947e.tar.bz2
- Patch #297860 by sun: fixed XML-RPC error handling.
Diffstat (limited to 'includes/xmlrpc.inc')
-rw-r--r--includes/xmlrpc.inc13
1 files changed, 12 insertions, 1 deletions
diff --git a/includes/xmlrpc.inc b/includes/xmlrpc.inc
index cdf3f227d..4abbc8fa7 100644
--- a/includes/xmlrpc.inc
+++ b/includes/xmlrpc.inc
@@ -342,7 +342,7 @@ EOD;
}
-function xmlrpc_error($code = NULL, $message = NULL) {
+function xmlrpc_error($code = NULL, $message = NULL, $reset = FALSE) {
static $xmlrpc_error;
if (isset($code)) {
$xmlrpc_error = new stdClass();
@@ -350,6 +350,9 @@ function xmlrpc_error($code = NULL, $message = NULL) {
$xmlrpc_error->code = $code;
$xmlrpc_error->message = $message;
}
+ elseif ($reset) {
+ $xmlrpc_error = NULL;
+ }
return $xmlrpc_error;
}
@@ -441,6 +444,7 @@ function xmlrpc_base64_get_xml($xmlrpc_base64) {
function _xmlrpc() {
$args = func_get_args();
$url = array_shift($args);
+ xmlrpc_clear_error();
if (is_array($args[0])) {
$method = 'system.multicall';
$multicall_args = array();
@@ -494,3 +498,10 @@ function xmlrpc_error_msg() {
$error = xmlrpc_error();
return ($error != NULL ? $error->message : NULL);
}
+
+/**
+ * Clears any previous error.
+ */
+function xmlrpc_clear_error() {
+ xmlrpc_error(NULL, NULL, TRUE);
+}