]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virInterfaceDefParseXML: Simplify and cleanup
authorTim Wiederhake <twiederh@redhat.com>
Wed, 12 Jan 2022 12:41:25 +0000 (13:41 +0100)
committerTim Wiederhake <twiederh@redhat.com>
Fri, 14 Jan 2022 14:38:50 +0000 (15:38 +0100)
Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/interface_conf.c

index 26844c14c81be02893c53c75e1388eae5f722e7c..6cb219437a266d70a258f7a64b6200df78318106 100644 (file)
@@ -573,26 +573,14 @@ static virInterfaceDef *
 virInterfaceDefParseXML(xmlXPathContextPtr ctxt,
                         int parentIfType)
 {
-    g_autoptr(virInterfaceDef) def = NULL;
-    int type;
-    g_autofree char *tmp = NULL;
     VIR_XPATH_NODE_AUTORESTORE(ctxt)
+    g_autoptr(virInterfaceDef) def = NULL;
+    virInterfaceType type;
     xmlNodePtr lnk;
 
-
-    /* check @type */
-    tmp = virXPathString("string(./@type)", ctxt);
-    if (tmp == NULL) {
-        virReportError(VIR_ERR_XML_ERROR,
-                       "%s", _("interface misses the type attribute"));
+    if (virXMLPropEnum(ctxt->node, "type", virInterfaceTypeFromString,
+                       VIR_XML_PROP_REQUIRED, &type) < 0)
         return NULL;
-    }
-    type = virInterfaceTypeFromString(tmp);
-    if (type == -1) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("unknown interface type %s"), tmp);
-        return NULL;
-    }
 
     def = g_new0(virInterfaceDef, 1);
 
@@ -680,7 +668,8 @@ virInterfaceDefParseXML(xmlXPathContextPtr ctxt,
                 return NULL;
             break;
         }
-
+        case VIR_INTERFACE_TYPE_LAST:
+            return NULL;
     }
 
     return g_steal_pointer(&def);