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

Tim Wiederhake twiederh at redhat.com
Wed Apr 21 15:51:32 UTC 2021


Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 src/conf/domain_conf.c | 55 ++++++++++++------------------------------
 1 file changed, 15 insertions(+), 40 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 367258bf7a..113f4123d7 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8273,24 +8273,14 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
                                 virStorageSource *src,
                                 unsigned int flags)
 {
-    int tlsCfgVal;
-    g_autofree char *protocol = NULL;
-    g_autofree char *haveTLS = NULL;
-    g_autofree char *tlsCfg = NULL;
-    g_autofree char *sslverifystr = NULL;
+    virStorageNetProtocol protocol;
     xmlNodePtr tmpnode;
 
-    if (!(protocol = virXMLPropString(node, "protocol"))) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("missing network source protocol type"));
+    if (virXMLPropEnum(node, "protocol", virStorageNetProtocolTypeFromString,
+                       VIR_XML_PROP_REQUIRED, &protocol) < 0)
         return -1;
-    }
 
-    if ((src->protocol = virStorageNetProtocolTypeFromString(protocol)) <= 0) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("unknown protocol type '%s'"), protocol);
-        return -1;
-    }
+    src->protocol = protocol;
 
     if (!(src->path = virXMLPropString(node, "name")) &&
         src->protocol != VIR_STORAGE_NET_PROTOCOL_NBD) {
@@ -8299,26 +8289,16 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
         return -1;
     }
 
-    if ((haveTLS = virXMLPropString(node, "tls"))) {
-        int value;
-
-        if ((value = virTristateBoolTypeFromString(haveTLS)) <= 0) {
-            virReportError(VIR_ERR_XML_ERROR,
-                           _("unknown disk source 'tls' setting '%s'"), haveTLS);
-            return -1;
-        }
-        src->haveTLS = value;
-    }
+    if (virXMLPropTristateBool(node, "tls", VIR_XML_PROP_NONE,
+                               &src->haveTLS) < 0)
+        return -1;
 
-    if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
-        (tlsCfg = virXMLPropString(node, "tlsFromConfig"))) {
-        if (virStrToLong_i(tlsCfg, NULL, 10, &tlsCfgVal) < 0) {
-            virReportError(VIR_ERR_XML_ERROR,
-                           _("Invalid tlsFromConfig value: %s"),
-                           tlsCfg);
+    if (flags & VIR_DOMAIN_DEF_PARSE_STATUS) {
+        int value;
+        if (virXMLPropInt(node, "tlsFromConfig", 10, VIR_XML_PROP_NONE,
+                          &value) < 0)
             return -1;
-        }
-        src->tlsFromConfig = !!tlsCfgVal;
+        src->tlsFromConfig = !!value;
     }
 
     /* for historical reasons we store the volume and image name in one XML
@@ -8364,15 +8344,10 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
 
     if ((src->protocol == VIR_STORAGE_NET_PROTOCOL_HTTPS ||
          src->protocol == VIR_STORAGE_NET_PROTOCOL_FTPS) &&
-        (sslverifystr = virXPathString("string(./ssl/@verify)", ctxt))) {
-        int verify;
-        if ((verify = virTristateBoolTypeFromString(sslverifystr)) < 0) {
-            virReportError(VIR_ERR_XML_ERROR,
-                           _("invalid ssl verify mode '%s'"), sslverifystr);
+        (tmpnode = virXPathNode("./ssl", ctxt))) {
+        if (virXMLPropTristateBool(tmpnode, "verify", VIR_XML_PROP_NONE,
+                                   &src->sslverify) < 0)
             return -1;
-        }
-
-        src->sslverify = verify;
     }
 
     if ((src->protocol == VIR_STORAGE_NET_PROTOCOL_HTTP ||
-- 
2.26.3




More information about the libvir-list mailing list