g_free(inc->filterref);
g_free(inc);
}
-
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNWFilterIncludeDef, virNWFilterIncludeDefFree);
static void
virNWFilterEntryFree(virNWFilterEntry *entry)
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);
}