aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_utils.c
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2011-10-06 18:50:22 +0100
committerIan Campbell <ian.campbell@citrix.com>2011-10-06 18:50:22 +0100
commit2d5b0e8b80e01af1e9f0610adf3386babcf9b884 (patch)
tree952341f292a5d971eeb0ead4ef4b950aac766f1d /tools/libxl/libxl_utils.c
parentf43458f6e2f777228fc78cb38280f670fe603b9a (diff)
downloadxen-2d5b0e8b80e01af1e9f0610adf3386babcf9b884.tar.gz
xen-2d5b0e8b80e01af1e9f0610adf3386babcf9b884.tar.bz2
xen-2d5b0e8b80e01af1e9f0610adf3386babcf9b884.zip
libxl: fix libxl_mac_to_device_nic
I think I broke this back in 22041:4c9ef5ec9146, using i as both the inner and outer loop iterator. I've added libxl__compare_macs which helps keep things clean. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_utils.c')
-rw-r--r--tools/libxl/libxl_utils.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
index 15578b1c4e..9af254d525 100644
--- a/tools/libxl/libxl_utils.c
+++ b/tools/libxl/libxl_utils.c
@@ -453,9 +453,7 @@ int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid,
{
libxl_nicinfo *nics;
unsigned int nb, rc, i;
- int found;
libxl_mac mac_n;
- uint8_t *a, *b;
rc = libxl__parse_mac(mac, mac_n);
if (rc)
@@ -466,17 +464,15 @@ int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid,
return ERROR_FAIL;
memset(nic, 0, sizeof (libxl_device_nic));
- found = 0;
+
+ rc = ERROR_INVAL;
for (i = 0; i < nb; ++i) {
- for (i = 0, a = nics[i].mac, b = mac_n;
- (b < mac_n + 6) && (*a == *b); ++a, ++b)
- ;
- if ((b >= mac_n + 6) && (*a == *b)) {
+ if (!libxl__compare_macs(&mac_n, &nics[i].mac)) {
nic->backend_domid = nics[i].backend_id;
nic->devid = nics[i].devid;
memcpy(nic->mac, nics[i].mac, sizeof (nic->mac));
nic->script = strdup(nics[i].script);
- found = 1;
+ rc = 0;
break;
}
}
@@ -484,7 +480,7 @@ int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid,
for (i=0; i<nb; i++)
libxl_nicinfo_destroy(&nics[i]);
free(nics);
- return found;
+ return rc;
}
int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid,