---
Can't we just get rid of this horrific and mostly unmaintained xenapi code
completely? :-)
src/xenapi/xenapi_driver.c | 3 ++-
src/xenapi/xenapi_utils.c | 36 ++++++++++++++----------------------
2 files changed, 16 insertions(+), 23 deletions(-)
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index 298ab21..a91f497 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -1512,7 +1512,8 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
}
xen_vif_get_record(session, &vif_rec, vif);
if (vif_rec != NULL) {
- if (virMacAddrParse((const char
*)vif_rec->mac,defPtr->nets[i]->mac) < 0)
+ if (virMacAddrParse((const char *)vif_rec->mac,
+ &defPtr->nets[i]->mac) < 0)
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
_("Unable to parse given mac
address"));
xen_vif_record_free(vif_rec);
diff --git a/src/xenapi/xenapi_utils.c b/src/xenapi/xenapi_utils.c
index e5a9cc5..c8b12de 100644
--- a/src/xenapi/xenapi_utils.c
+++ b/src/xenapi/xenapi_utils.c
@@ -453,7 +453,6 @@ createVMRecordFromXml (virConnectPtr conn, virDomainDefPtr def,
char uuidStr[VIR_UUID_STRING_BUFLEN];
xen_string_string_map *strings = NULL;
int device_number = 0;
- char *bridge = NULL, *mac = NULL;
int i;
*record = xen_vm_record_alloc();
@@ -542,28 +541,21 @@ createVMRecordFromXml (virConnectPtr conn, virDomainDefPtr def,
}
for (i = 0; i < def->nnets; i++) {
- if (def->nets[i]->type == VIR_DOMAIN_NET_TYPE_BRIDGE) {
- if (def->nets[i]->data.bridge.brname)
- if (!(bridge = strdup(def->nets[i]->data.bridge.brname)))
- goto error_cleanup;
- if (def->nets[i]->mac) {
- char macStr[VIR_MAC_STRING_BUFLEN];
- virMacAddrFormat(def->nets[i]->mac, macStr);
- if (!(mac = strdup(macStr))) {
- VIR_FREE(bridge);
- goto error_cleanup;
- }
- }
- if (mac != NULL && bridge != NULL) {
- if (createVifNetwork(conn, *vm, device_number, bridge,
- mac) < 0) {
- VIR_FREE(bridge);
- goto error_cleanup;
- }
- VIR_FREE(bridge);
- device_number++;
+ if (def->nets[i]->type == VIR_DOMAIN_NET_TYPE_BRIDGE &&
+ def->nets[i]->data.bridge.brname) {
+ char *mac;
+
+ if (VIR_ALLOC_N(mac, VIR_MAC_STRING_BUFLEN) < 0)
+ goto error_cleanup;
+ virMacAddrFormat(&def->nets[i]->mac, mac);
+
+ if (createVifNetwork(conn, *vm, device_number,
+ def->nets[i]->data.bridge.brname,
+ mac) < 0) {
+ VIR_FREE(mac);
+ goto error_cleanup;
}
- VIR_FREE(bridge);
+ device_number++;
}
}
return 0;
--
1.7.11.1