otherwise a missing UUID in a domain config just shows: libxlDomainXMLFromNative:2600 : Internal Error parsing xm config failed Now we have: xenXMConfigGetUUID:186 : Internal Error config value uuid was missing O.k. to apply? -- Guido --- src/xenxs/xen_xm.c | 37 +++++++++++++++++++++++++++---------- 1 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c index 03857c8..d057043 100644 --- a/src/xenxs/xen_xm.c +++ b/src/xenxs/xen_xm.c @@ -174,21 +174,38 @@ static int xenXMConfigCopyStringOpt(virConfPtr conf, /* Convenience method to grab a string UUID from the config file object */ static int xenXMConfigGetUUID(virConfPtr conf, const char *name, unsigned char *uuid) { virConfValuePtr val; - if (!uuid || !name || !conf) - return (-1); + + if (!uuid || !name || !conf) { + XENXS_ERROR(VIR_ERR_INVALID_ARG, + _("Arguments must be non null")); + return -1; + } + if (!(val = virConfGetValue(conf, name))) { - return (-1); + XENXS_ERROR(VIR_ERR_INTERNAL_ERROR, + _("config value %s was missing"), name); + return -1; } - if (val->type != VIR_CONF_STRING) - return (-1); - if (!val->str) - return (-1); + if (val->type != VIR_CONF_STRING) { + XENXS_ERROR(VIR_ERR_INTERNAL_ERROR, + _("config value %s not a string"), name); + return -1; + } + + if (!val->str) { + XENXS_ERROR(VIR_ERR_INTERNAL_ERROR, + _("%s can't be empty"), name); + return -1; + } - if (virUUIDParse(val->str, uuid) < 0) - return (-1); + if (virUUIDParse(val->str, uuid) < 0) { + XENXS_ERROR(VIR_ERR_INTERNAL_ERROR, + _("%s not parseable"), val->str); + return -1; + } - return (0); + return 0; } #define MAX_VFB 1024 -- 1.7.6.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list