From: Cole Robinson Date: Wed, 24 Feb 2010 16:13:00 +0000 (-0500) Subject: virsh: Show errors reported by nonAPI functions X-Git-Tag: v0.7.7~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=482869633accf9a6adeacf63486cd6b306da96d2;p=thirdparty%2Flibvirt.git 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' --- 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"));