[libvirt PATCH 09/10] virDomainVsockDefParseXML: Use virXMLProp*

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux