]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: nwfilter: Refactor virNWFilterIncludeParse
authorPeter Krempa <pkrempa@redhat.com>
Tue, 11 Apr 2023 16:02:28 +0000 (18:02 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 5 Jun 2023 11:23:06 +0000 (13:23 +0200)
Use automatic memory freeing and modern XML parsers to simplify the
function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/nwfilter_conf.c

index f96ae707f97fe70d0f0071e749503fb134fd3b4e..b79fd2561e7e905c25963af8cdcbe467a2db2031 100644 (file)
@@ -298,7 +298,7 @@ virNWFilterIncludeDefFree(virNWFilterIncludeDef *inc)
     g_free(inc->filterref);
     g_free(inc);
 }
-
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNWFilterIncludeDef, virNWFilterIncludeDefFree);
 
 static void
 virNWFilterEntryFree(virNWFilterEntry *entry)
@@ -2031,27 +2031,15 @@ virNWFilterRuleDetailsParse(xmlNodePtr node,
 static virNWFilterIncludeDef *
 virNWFilterIncludeParse(xmlNodePtr cur)
 {
-    virNWFilterIncludeDef *ret;
-
-    ret = g_new0(virNWFilterIncludeDef, 1);
-
-    ret->filterref = virXMLPropString(cur, "filter");
-    if (!ret->filterref) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "%s",
-                       _("rule node requires action attribute"));
-        goto err_exit;
-    }
+    g_autoptr(virNWFilterIncludeDef) ret = g_new0(virNWFilterIncludeDef, 1);
 
-    ret->params = virNWFilterParseParamAttributes(cur);
-    if (!ret->params)
-        goto err_exit;
+    if (!(ret->filterref = virXMLPropStringRequired(cur, "filter")))
+        return NULL;
 
-    return ret;
+    if (!(ret->params = virNWFilterParseParamAttributes(cur)))
+        return NULL;
 
- err_exit:
-    virNWFilterIncludeDefFree(ret);
-    return NULL;
+    return g_steal_pointer(&ret);
 }