On 11/07/2013 11:16 AM, Peter Krempa wrote:
Now that the function is separate clean out a few ugly places and fix
up
error messages.
---
Notes:
Version 2:
- rebased to changes in 1/3 of this series
src/conf/domain_conf.c | 119 ++++++++++++++++++++++++-------------------------
1 file changed, 59 insertions(+), 60 deletions(-)
VIR_FREE(transport);
- if (hosts[nhosts - 1].transport != VIR_DOMAIN_DISK_PROTO_TRANS_UNIX) {
- hosts[nhosts - 1].name = virXMLPropString(child, "name");
- if (!hosts[nhosts - 1].name) {
- virReportError(VIR_ERR_XML_ERROR,
- "%s", _("missing name for
host"));
- goto error;
+
+ if (host.transport != VIR_DOMAIN_DISK_PROTO_TRANS_UNIX) {
+ if (!(host.name = virXMLPropString(child, "name"))) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("missing name for host"));
+ goto cleanup;
}
- hosts[nhosts - 1].port = virXMLPropString(child, "port");
+
+ host.port = virXMLPropString(child, "port");
}
+
+ if (VIR_APPEND_ELEMENT(*hosts, *nhosts, host))
if (VIR_APPEND_ELEMENT(..) < 0) would look clearer.
+ goto cleanup;
}
child = child->next;
}
break;
ACK with the following code dropped:
error:
- VIR_FREE(protocol);
- VIR_FREE(transport);
- while (nhosts > 0) {
+ while (nhosts > 0) {
virDomainDiskHostDefClear(&hosts[nhosts - 1]);
nhosts--;
}