break;
case VIR_NETWORK_SECTION_IP_DHCP_HOST:
return virNetworkDefUpdateIPDHCPHost(def, command,
- parentIndex, ctxt, flags);
+ parentIndex, ctxt, flags);
break;
case VIR_NETWORK_SECTION_IP_DHCP_RANGE:
return virNetworkDefUpdateIPDHCPRange(def, command,
- parentIndex, ctxt, flags);
+ parentIndex, ctxt, flags);
break;
case VIR_NETWORK_SECTION_FORWARD:
return virNetworkDefUpdateForward(def, command,
- parentIndex, ctxt, flags);
+ parentIndex, ctxt, flags);
break;
case VIR_NETWORK_SECTION_FORWARD_INTERFACE:
return virNetworkDefUpdateForwardInterface(def, command,
- parentIndex, ctxt, flags);
+ parentIndex, ctxt, flags);
break;
case VIR_NETWORK_SECTION_FORWARD_PF:
return virNetworkDefUpdateForwardPF(def, command,
- parentIndex, ctxt, flags);
+ parentIndex, ctxt, flags);
break;
case VIR_NETWORK_SECTION_PORTGROUP:
return virNetworkDefUpdatePortGroup(def, command,
- parentIndex, ctxt, flags);
+ parentIndex, ctxt, flags);
break;
case VIR_NETWORK_SECTION_DNS_HOST:
return virNetworkDefUpdateDNSHost(def, command,
- parentIndex, ctxt, flags);
+ parentIndex, ctxt, flags);
break;
case VIR_NETWORK_SECTION_DNS_TXT:
return virNetworkDefUpdateDNSTxt(def, command, parentIndex, ctxt, flags);
static virSecretDefPtr
secretXMLParseNode(xmlDocPtr xml, xmlNodePtr root)
{
- xmlXPathContextPtr ctxt = NULL;
- virSecretDefPtr def = NULL, ret = NULL;
- char *prop = NULL;
- char *uuidstr = NULL;
+ VIR_AUTOPTR(xmlXPathContext) ctxt = NULL;
+ VIR_AUTOPTR(virSecretDef) def = NULL;
+ VIR_AUTOFREE(char *) prop = NULL;
+ VIR_AUTOFREE(char *) uuidstr = NULL;
if (!virXMLNodeNameEqual(root, "secret")) {
virReportError(VIR_ERR_XML_ERROR,
_("unexpected root element <%s>, "
"expecting <secret>"),
root->name);
- goto cleanup;
+ return NULL;
}
if (!(ctxt = virXMLXPathContextNew(xml)))
- goto cleanup;
+ return NULL;
ctxt->node = root;
if (VIR_ALLOC(def) < 0)
- goto cleanup;
+ return NULL;
prop = virXPathString("string(./@ephemeral)", ctxt);
if (prop != NULL) {
if (virStringParseYesNo(prop, &def->isephemeral) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("invalid value of 'ephemeral'"));
- goto cleanup;
+ return NULL;
}
VIR_FREE(prop);
}
if (virStringParseYesNo(prop, &def->isprivate) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("invalid value of 'private'"));
- goto cleanup;
+ return NULL;
}
VIR_FREE(prop);
}
if (virUUIDGenerate(def->uuid) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Failed to generate UUID"));
- goto cleanup;
+ return NULL;
}
} else {
if (virUUIDParse(uuidstr, def->uuid) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("malformed uuid element"));
- goto cleanup;
+ return NULL;
}
VIR_FREE(uuidstr);
}
def->description = virXPathString("string(./description)", ctxt);
if (virXPathNode("./usage", ctxt) != NULL
&& virSecretDefParseUsage(ctxt, def) < 0)
- goto cleanup;
- VIR_STEAL_PTR(ret, def);
-
- cleanup:
- VIR_FREE(prop);
- VIR_FREE(uuidstr);
- virSecretDefFree(def);
- xmlXPathFreeContext(ctxt);
- return ret;
+ return NULL;
+
+ VIR_RETURN_PTR(def);
}
static virSecretDefPtr