From 482869633accf9a6adeacf63486cd6b306da96d2 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Wed, 24 Feb 2010 11:13:00 -0500 Subject: [PATCH] virsh: Show errors reported by nonAPI functions Only API calls trigger the error callback, which is required for proper virsh error reporting. Since we use non API functions from util/, make sure we properly report these errors. Fixes lack of error message from 'virsh create idontexit.xml' --- tools/virsh.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/virsh.c b/tools/virsh.c index 89eefcfdf3..f7fd7d4941 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -352,8 +352,16 @@ virshErrorHandler(void *unused ATTRIBUTE_UNUSED, virErrorPtr error) static void virshReportError(vshControl *ctl) { - if (last_error == NULL) - return; + if (last_error == NULL) { + /* Calling directly into libvirt util functions won't trigger the + * error callback (which sets last_error), so check it ourselves. + * + * If the returned error has CODE_OK, this most likely means that + * no error was ever raised, so just ignore */ + last_error = virSaveLastError(); + if (!last_error || last_error->code == VIR_ERR_OK) + return NULL; + } if (last_error->code == VIR_ERR_OK) { vshError(ctl, "%s", _("unknown error")); -- 2.47.2