mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
util: add a virReportEnumRangeError for bad value reporting
To ensure we have standardized error messages when reporting problems with enum values being out of a range, add virReportEnumRangeError(). virReportEnumRangeError(virDomainState, 34); results in a message "internal error: Unexpected enum value 34 for virDomainState" Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
b7d0e27238
commit
3b1020ac80
@ -164,7 +164,16 @@ void virReportSystemErrorFull(int domcode,
|
|||||||
# define virReportRestrictedError(...) \
|
# define virReportRestrictedError(...) \
|
||||||
virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_OPERATION_DENIED, \
|
virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_OPERATION_DENIED, \
|
||||||
__FILE__, __FUNCTION__, __LINE__, __VA_ARGS__)
|
__FILE__, __FUNCTION__, __LINE__, __VA_ARGS__)
|
||||||
|
/* The sizeof(...) comparison here is a hack to catch typos
|
||||||
|
* in the name of the enum by triggering a compile error, as well
|
||||||
|
* as detecting if you passed a typename that refers to a function
|
||||||
|
* or struct type, instead of an enum. It should get optimized away
|
||||||
|
* since sizeof() is known at compile time */
|
||||||
|
# define virReportEnumRangeError(typname, value) \
|
||||||
|
virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INTERNAL_ERROR, \
|
||||||
|
__FILE__, __FUNCTION__, __LINE__, \
|
||||||
|
"Unexpected enum value %d for %s", \
|
||||||
|
value, sizeof((typename)1) != 0 ? #typname : #typname);
|
||||||
|
|
||||||
void virReportOOMErrorFull(int domcode,
|
void virReportOOMErrorFull(int domcode,
|
||||||
const char *filename,
|
const char *filename,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user