mirror of
https://github.com/libvirt/libvirt.git
synced 2026-09-03 20:53:04 -05:00
Add a virGetLastErrorMessage() function
Apps using libvirt will often have code like
if (virXXXX() < 0) {
virErrorPtr err = virGetLastError();
fprintf(stderr, "Something failed: %s\n",
err && err->message ? err->message :
"unknown error");
return -1;
}
Checking for a NULL error object or message leads to very
verbose code. A virGetLastErrorMessage() helper from libvirt
can simplify this to
if (virXXXX() < 0) {
fprintf(stderr, "Something failed: %s\n",
virGetLastErrorMessage());
return -1;
}
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
@@ -313,6 +313,8 @@ void virResetLastError (void);
|
|||||||
void virResetError (virErrorPtr err);
|
void virResetError (virErrorPtr err);
|
||||||
void virFreeError (virErrorPtr err);
|
void virFreeError (virErrorPtr err);
|
||||||
|
|
||||||
|
const char * virGetLastErrorMessage (void);
|
||||||
|
|
||||||
virErrorPtr virConnGetLastError (virConnectPtr conn);
|
virErrorPtr virConnGetLastError (virConnectPtr conn);
|
||||||
void virConnResetLastError (virConnectPtr conn);
|
void virConnResetLastError (virConnectPtr conn);
|
||||||
int virCopyLastError (virErrorPtr to);
|
int virCopyLastError (virErrorPtr to);
|
||||||
|
|||||||
@@ -616,4 +616,9 @@ LIBVIRT_1.0.5 {
|
|||||||
virNodeDeviceDetachFlags;
|
virNodeDeviceDetachFlags;
|
||||||
} LIBVIRT_1.0.3;
|
} LIBVIRT_1.0.3;
|
||||||
|
|
||||||
|
LIBVIRT_1.0.6 {
|
||||||
|
global:
|
||||||
|
virGetLastErrorMessage;
|
||||||
|
} LIBVIRT_1.0.5;
|
||||||
|
|
||||||
# .... define new API here using predicted next version number ....
|
# .... define new API here using predicted next version number ....
|
||||||
|
|||||||
@@ -234,6 +234,27 @@ virGetLastError(void)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* virGetLastErrorMessage:
|
||||||
|
*
|
||||||
|
* Get the most recent error message
|
||||||
|
*
|
||||||
|
* Returns the most recent error message string in this
|
||||||
|
* thread, or a generic message if none is set
|
||||||
|
*/
|
||||||
|
const char *
|
||||||
|
virGetLastErrorMessage(void)
|
||||||
|
{
|
||||||
|
virErrorPtr err = virLastErrorObject();
|
||||||
|
if (!err || err->code == VIR_ERR_OK)
|
||||||
|
return _("no error");
|
||||||
|
if (err->message == NULL)
|
||||||
|
return _("unknown error");
|
||||||
|
return err->message;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virSetError:
|
* virSetError:
|
||||||
* @newerr: previously saved error object
|
* @newerr: previously saved error object
|
||||||
|
|||||||
Reference in New Issue
Block a user