aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxen
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libxen')
-rw-r--r--tools/libxen/include/xen_common.h7
-rw-r--r--tools/libxen/src/xen_common.c17
2 files changed, 24 insertions, 0 deletions
diff --git a/tools/libxen/include/xen_common.h b/tools/libxen/include/xen_common.h
index 688df1c686..fc8d092e74 100644
--- a/tools/libxen/include/xen_common.h
+++ b/tools/libxen/include/xen_common.h
@@ -160,6 +160,13 @@ xen_session_logout(xen_session *session);
/**
+ * Clear any error condition recorded on this session.
+ */
+void
+xen_session_clear_error(xen_session *session);
+
+
+/**
* Get the UUID of the second given session. Set *result to point at a
* string, yours to free.
*/
diff --git a/tools/libxen/src/xen_common.c b/tools/libxen/src/xen_common.c
index b22ab2fcee..f0fc4cce33 100644
--- a/tools/libxen/src/xen_common.c
+++ b/tools/libxen/src/xen_common.c
@@ -207,6 +207,23 @@ xen_session_logout(xen_session *session)
}
+void
+xen_session_clear_error(xen_session *session)
+{
+ if (session->error_description != NULL)
+ {
+ for (int i = 0; i < session->error_description_count; i++)
+ {
+ free(session->error_description[i]);
+ }
+ free(session->error_description);
+ }
+ session->error_description = NULL;
+ session->error_description_count = 0;
+ session->ok = true;
+}
+
+
bool
xen_session_get_uuid(xen_session *session, char **result,
xen_session *self_session)