From c7d5cdb15ba8eca5c05ba0f5fc3de4ab6402f9ca Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Tue, 17 Jul 2012 17:18:36 +0200 Subject: [PATCH] xenapi: Convert to virMacAddr --- 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 298ab219e4..a91f497958 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 e5a9cc5738..c8b12dea2e 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 (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; } - 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++; - } - VIR_FREE(bridge); + device_number++; } } return 0;