On Wed, Apr 21, 2021 at 15:33:31 +0200, Tim Wiederhake wrote: > 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, 'or'-ing something to VIR_XML_PROP_NONE doesn't make sense. > + &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) This is an unrelated change. > return NULL; I'll fix both before pushing.