mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 11:35:19 +00: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:
parent
a2214c5257
commit
69c6a58a1d
@ -313,6 +313,8 @@ void virResetLastError (void);
|
||||
void virResetError (virErrorPtr err);
|
||||
void virFreeError (virErrorPtr err);
|
||||
|
||||
const char * virGetLastErrorMessage (void);
|
||||
|
||||
virErrorPtr virConnGetLastError (virConnectPtr conn);
|
||||
void virConnResetLastError (virConnectPtr conn);
|
||||
int virCopyLastError (virErrorPtr to);
|
||||
|
@ -616,4 +616,9 @@ LIBVIRT_1.0.5 {
|
||||
virNodeDeviceDetachFlags;
|
||||
} LIBVIRT_1.0.3;
|
||||
|
||||
LIBVIRT_1.0.6 {
|
||||
global:
|
||||
virGetLastErrorMessage;
|
||||
} LIBVIRT_1.0.5;
|
||||
|
||||
# .... define new API here using predicted next version number ....
|
||||
|
@ -234,6 +234,27 @@ virGetLastError(void)
|
||||
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:
|
||||
* @newerr: previously saved error object
|
||||
|
Loading…
Reference in New Issue
Block a user