summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/xmlrpc.inc13
1 files changed, 12 insertions, 1 deletions
diff --git a/includes/xmlrpc.inc b/includes/xmlrpc.inc
index 4895e9802..28b160b24 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();
@@ -351,6 +351,9 @@ function xmlrpc_error($code = NULL, $message = NULL) {
$xmlrpc_error->message = $message;
module_invoke('system', 'check_http_request');
}
+ elseif ($reset) {
+ $xmlrpc_error = NULL;
+ }
return $xmlrpc_error;
}
@@ -427,6 +430,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();
@@ -475,3 +479,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);
+} \ No newline at end of file