Signed-off-by: Tim Wiederhake <twiederh@xxxxxxxxxx> --- src/conf/domain_conf.c | 48 ++++++++++++------------------------------ 1 file changed, 13 insertions(+), 35 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 9e968c087d..1878d9ed9d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -15855,8 +15855,6 @@ virDomainVsockDefParseXML(virDomainXMLOption *xmlopt, { VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr cid; - int val; - g_autofree char *tmp = NULL; g_autoptr(virDomainVsockDef) vsock = NULL; ctxt->node = node; @@ -15864,49 +15862,29 @@ virDomainVsockDefParseXML(virDomainXMLOption *xmlopt, if (!(vsock = virDomainVsockDefNew(xmlopt))) return NULL; - if ((tmp = virXMLPropString(node, "model"))) { - if ((val = virDomainVsockModelTypeFromString(tmp)) < 0) { - virReportError(VIR_ERR_XML_ERROR, _("unknown vsock model: %s"), tmp); - return NULL; - } - vsock->model = val; - } - - cid = virXPathNode("./cid", ctxt); + if (virXMLPropEnum(node, "model", virDomainVsockModelTypeFromString, + VIR_XML_PROP_NONE, &vsock->model) < 0) + return NULL; - VIR_FREE(tmp); - if (cid) { - if ((tmp = virXMLPropString(cid, "address"))) { - if (virStrToLong_uip(tmp, NULL, 10, &vsock->guest_cid) < 0 || - vsock->guest_cid == 0) { - virReportError(VIR_ERR_XML_DETAIL, - _("'cid' attribute must be a positive number: %s"), - tmp); - return NULL; - } - } + if ((cid = virXPathNode("./cid", ctxt))) { + if (virXMLPropUInt(cid, "address", 10, + VIR_XML_PROP_NONE | VIR_XML_PROP_NONZERO, + &vsock->guest_cid) < 0) + return NULL; - VIR_FREE(tmp); - if ((tmp = virXMLPropString(cid, "auto"))) { - val = virTristateBoolTypeFromString(tmp); - if (val <= 0) { - virReportError(VIR_ERR_XML_DETAIL, - _("'auto' attribute can be 'yes' or 'no': %s"), - tmp); - return NULL; - } - vsock->auto_cid = val; - } + if (virXMLPropTristateBool(cid, "auto", VIR_XML_PROP_NONE, + &vsock->auto_cid) < 0) + return NULL; } - if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, &vsock->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, &vsock->info, + flags) < 0) return NULL; if (virDomainVirtioOptionsParseXML(virXPathNode("./driver", ctxt), &vsock->virtio) < 0) return NULL; - return g_steal_pointer(&vsock); } -- 2.26.3