On 03/26/2013 12:26 PM, Peter Krempa wrote:
Format the address using the helper to avoid code duplication.
---
src/conf/domain_conf.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 4cae0d3..40dfc99 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -13354,6 +13354,7 @@ virDomainNetDefFormat(virBufferPtr buf,
unsigned int flags)
{
const char *type = virDomainNetTypeToString(def->type);
+ char macstr[VIR_MAC_STRING_BUFLEN];
if (!type) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -13369,10 +13370,8 @@ virDomainNetDefFormat(virBufferPtr buf,
virBufferAddLit(buf, ">\n");
virBufferAdjustIndent(buf, 6);
- virBufferAsprintf(buf,
- "<mac
address='%02x:%02x:%02x:%02x:%02x:%02x'/>\n",
- def->mac.addr[0], def->mac.addr[1], def->mac.addr[2],
- def->mac.addr[3], def->mac.addr[4], def->mac.addr[5]);
+ virBufferAsprintf(buf, "<mac address='%s'/>\n",
+ virMacAddrFormat(&def->mac, macstr));
switch (def->type) {
case VIR_DOMAIN_NET_TYPE_NETWORK:
I'd ACK that, fine use for the cleanup, but pity it's fixed on only one
place. How about squashing in the following?
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 40dfc99..ba3bb59 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -11486,14 +11486,15 @@ static bool
virDomainNetDefCheckABIStability(virDomainNetDefPtr src,
virDomainNetDefPtr dst)
{
+ char srcmac[VIR_MAC_STRING_BUFLEN];
+ char dstmac[VIR_MAC_STRING_BUFLEN];
+
if (virMacAddrCmp(&src->mac, &dst->mac) != 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Target network card mac
%02x:%02x:%02x:%02x:%02x:%02x"
- " does not match source
%02x:%02x:%02x:%02x:%02x:%02x"),
- dst->mac.addr[0], dst->mac.addr[1], dst->mac.addr[2],
- dst->mac.addr[3], dst->mac.addr[4], dst->mac.addr[5],
- src->mac.addr[0], src->mac.addr[1], src->mac.addr[2],
- src->mac.addr[3], src->mac.addr[4], src->mac.addr[5]);
+ _("Target network card mac %s"
+ " does not match source %s"),
+ virMacAddrFormat(&dst->mac, dstmac),
+ virMacAddrFormat(&src->mac, srcmac));
return false;
}
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index a0c278f..d539dbd 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3635,12 +3635,12 @@ qemuBuildNicStr(virDomainNetDefPtr net,
int vlan)
{
char *str;
+ char macaddr[VIR_MAC_STRING_BUFLEN];
+
if (virAsprintf(&str,
- "%smacaddr=%02x:%02x:%02x:%02x:%02x:%02x,vlan=%d%s%s%s%s",
+ "%smacaddr=%s,vlan=%d%s%s%s%s",
prefix ? prefix : "",
- net->mac.addr[0], net->mac.addr[1],
- net->mac.addr[2], net->mac.addr[3],
- net->mac.addr[4], net->mac.addr[5],
+ virMacAddrFormat(&net->mac, macaddr),
vlan,
(net->model ? ",model=" : ""),
(net->model ? net->model : ""),
@@ -3663,6 +3663,7 @@ qemuBuildNicDevStr(virDomainNetDefPtr net,
virBuffer buf = VIR_BUFFER_INITIALIZER;
const char *nic;
bool usingVirtio = false;
+ char macaddr[VIR_MAC_STRING_BUFLEN];
if (!net->model) {
nic = "rtl8139";
@@ -3719,10 +3720,8 @@ qemuBuildNicDevStr(virDomainNetDefPtr net,
else
virBufferAsprintf(&buf, ",vlan=%d", vlan);
virBufferAsprintf(&buf, ",id=%s", net->info.alias);
- virBufferAsprintf(&buf, ",mac=%02x:%02x:%02x:%02x:%02x:%02x",
- net->mac.addr[0], net->mac.addr[1],
- net->mac.addr[2], net->mac.addr[3],
- net->mac.addr[4], net->mac.addr[5]);
+ virBufferAsprintf(&buf, ",mac=%s",
+ virMacAddrFormat(&net->mac, macaddr));
if (qemuBuildDeviceAddressStr(&buf, &net->info, qemuCaps) < 0)
goto error;
if (qemuBuildRomStr(&buf, &net->info, qemuCaps) < 0)
diff --git a/src/uml/uml_conf.c b/src/uml/uml_conf.c
index b3ac326..0fe59fb 100644
--- a/src/uml/uml_conf.c
+++ b/src/uml/uml_conf.c
@@ -1,7 +1,7 @@
/*
* uml_conf.c: UML driver configuration
*
- * Copyright (C) 2006-2012 Red Hat, Inc.
+ * Copyright (C) 2006-2013 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -164,6 +164,7 @@ umlBuildCommandLineNet(virConnectPtr conn,
int idx)
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
+ char macaddr[VIR_MAC_STRING_BUFLEN];
/* General format: ethNN=type,options */
@@ -264,9 +265,7 @@ umlBuildCommandLineNet(virConnectPtr conn,
goto error;
}
- virBufferAsprintf(&buf, ",%02x:%02x:%02x:%02x:%02x:%02x",
- def->mac.addr[0], def->mac.addr[1], def->mac.addr[2],
- def->mac.addr[3], def->mac.addr[4], def->mac.addr[5]);
+ virBufferAsprintf(&buf, ",%s", virMacAddrFormat(&def->mac,
macaddr));
if (def->type == VIR_DOMAIN_NET_TYPE_MCAST) {
virBufferAsprintf(&buf, ",%s,%d",
diff --git a/src/util/virebtables.c b/src/util/virebtables.c
index ded62d7..e1c18f0 100644
--- a/src/util/virebtables.c
+++ b/src/util/virebtables.c
@@ -1,7 +1,7 @@
/*
* virebtables.c: Helper APIs for managing ebtables
*
- * Copyright (C) 2007-2012 Red Hat, Inc.
+ * Copyright (C) 2007-2013 Red Hat, Inc.
* Copyright (C) 2009 IBM Corp.
*
* This library is free software; you can redistribute it and/or
@@ -447,14 +447,10 @@ ebtablesAddForwardAllowIn(ebtablesContext *ctx,
const virMacAddrPtr mac)
{
char *macaddr;
-
- if (virAsprintf(&macaddr,
- "%02x:%02x:%02x:%02x:%02x:%02x",
- mac->addr[0], mac->addr[1],
- mac->addr[2], mac->addr[3],
- mac->addr[4], mac->addr[5]) < 0) {
+ if (VIR_ALLOC_N(macaddr, VIR_MAC_STRING_BUFLEN) < 0)
return -1;
- }
+
+ virMacAddrFormat(mac, macaddr);
return ebtablesForwardAllowIn(ctx, iface, macaddr, ADD);
}
@@ -476,13 +472,9 @@ ebtablesRemoveForwardAllowIn(ebtablesContext *ctx,
const virMacAddrPtr mac)
{
char *macaddr;
+ if (VIR_ALLOC_N(macaddr, VIR_MAC_STRING_BUFLEN) < 0)
+ return -1;
- if (virAsprintf(&macaddr,
- "%02x:%02x:%02x:%02x:%02x:%02x",
- mac->addr[0], mac->addr[1],
- mac->addr[2], mac->addr[3],
- mac->addr[4], mac->addr[5]) < 0) {
- return -1;
- }
+ virMacAddrFormat(mac, macaddr);
return ebtablesForwardAllowIn(ctx, iface, macaddr, REMOVE);
}
diff --git a/src/util/virnetdevmacvlan.c b/src/util/virnetdevmacvlan.c
index ddea11f..2578ff0 100644
--- a/src/util/virnetdevmacvlan.c
+++ b/src/util/virnetdevmacvlan.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2012 Red Hat, Inc.
+ * Copyright (C) 2010-2013 Red Hat, Inc.
* Copyright (C) 2010-2012 IBM Corporation
*
* This library is free software; you can redistribute it and/or
@@ -518,6 +518,7 @@ virNetDevMacVLanVPortProfileCallback(unsigned char *msg,
virNetlinkCallbackDataPtr calld = opaque;
pid_t lldpad_pid = 0;
pid_t virip_pid = 0;
+ char macaddr[VIR_MAC_STRING_BUFLEN];
hdr = (struct nlmsghdr *) msg;
data = nlmsg_data(hdr);
@@ -707,11 +708,7 @@ virNetDevMacVLanVPortProfileCallback(unsigned char *msg,
VIR_INFO("Re-send 802.1qbg associate request:");
VIR_INFO(" if: %s", calld->cr_ifname);
VIR_INFO(" lf: %s", calld->linkdev);
- VIR_INFO(" mac: %02x:%02x:%02x:%02x:%02x:%02x",
- calld->macaddress.addr[0], calld->macaddress.addr[1],
- calld->macaddress.addr[2], calld->macaddress.addr[3],
- calld->macaddress.addr[4], calld->macaddress.addr[5]);
-
+ VIR_INFO(" mac: %s", virMacAddrFormat(&calld->macaddress,
macaddr));
ignore_value(virNetDevVPortProfileAssociate(calld->cr_ifname,
calld->virtPortProfile,
&calld->macaddress,
diff --git a/src/util/virnetdevtap.c b/src/util/virnetdevtap.c
index a884de1..871376e 100644
--- a/src/util/virnetdevtap.c
+++ b/src/util/virnetdevtap.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2012 Red Hat, Inc.
+ * Copyright (C) 2007-2013 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -286,6 +286,7 @@ int virNetDevTapCreateInBridgePort(const char *brname,
unsigned int flags)
{
virMacAddr tapmac;
+ char macaddrstr[VIR_MAC_STRING_BUFLEN];
if (virNetDevTapCreate(ifname, tapfd, flags) < 0)
return -1;
@@ -306,10 +307,8 @@ int virNetDevTapCreateInBridgePort(const char *brname,
*/
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unable to use MAC address starting with "
- "reserved value 0xFE -
'%02X:%02X:%02X:%02X:%02X:%02X' - "),
- macaddr->addr[0], macaddr->addr[1],
- macaddr->addr[2], macaddr->addr[3],
- macaddr->addr[4], macaddr->addr[5]);
+ "reserved value 0xFE - '%s' - "),
+ virMacAddrFormat(macaddr, macaddrstr));
goto error;
}
tapmac.addr[0] = 0xFE; /* Discourage bridge from using TAP dev MAC */
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
index 398da0d..835296a 100644
--- a/src/xen/xend_internal.c
+++ b/src/xen/xend_internal.c
@@ -3730,17 +3730,14 @@ virDomainXMLDevID(virDomainPtr domain,
if (tmp == NULL)
return -1;
} else if (dev->type == VIR_DOMAIN_DEVICE_NET) {
- char mac[30];
+ char mac[VIR_MAC_STRING_BUFLEN];
virDomainNetDefPtr def =
dev->data.net;
- snprintf(mac, sizeof(mac), "%02x:%02x:%02x:%02x:%02x:%02x",
- def->mac.addr[0], def->mac.addr[1], def->mac.addr[2],
- def->mac.addr[3], def->mac.addr[4], def->mac.addr[5]);
+ virMacAddrFormat(&def->mac, mac));
strcpy(class, "vif");
xenUnifiedLock(priv);
- xref = xenStoreDomainGetNetworkID(domain->conn, domain->id,
- mac);
+ xref = xenStoreDomainGetNetworkID(domain->conn, domain->id, mac);
xenUnifiedUnlock(priv);
if (xref == NULL)
return -1;
diff --git a/src/xenxs/xen_sxpr.c b/src/xenxs/xen_sxpr.c
index 83b7c74..cc4225b 100644
--- a/src/xenxs/xen_sxpr.c
+++ b/src/xenxs/xen_sxpr.c
@@ -1,7 +1,7 @@
/*
* xen_sxpr.c: Xen SEXPR parsing functions
*
- * Copyright (C) 2010-2012 Red Hat, Inc.
+ * Copyright (C) 2010-2013 Red Hat, Inc.
* Copyright (C) 2011 Univention GmbH
* Copyright (C) 2005 Anthony Liguori <aliguori(a)us.ibm.com>
*
@@ -1914,6 +1914,7 @@ xenFormatSxprNet(virConnectPtr conn,
int isAttach)
{
const char *script = DEFAULT_VIF_SCRIPT;
+ char macaddr[VIR_MAC_STRING_BUFLEN];
if (def->type != VIR_DOMAIN_NET_TYPE_BRIDGE &&
def->type != VIR_DOMAIN_NET_TYPE_NETWORK &&
@@ -1936,10 +1937,7 @@ xenFormatSxprNet(virConnectPtr conn,
virBufferAddLit(buf, "(vif ");
- virBufferAsprintf(buf,
- "(mac '%02x:%02x:%02x:%02x:%02x:%02x')",
- def->mac.addr[0], def->mac.addr[1], def->mac.addr[2],
- def->mac.addr[3], def->mac.addr[4], def->mac.addr[5]);
+ virBufferAsprintf(buf, "(mac '%s')",
virMacAddrFormat(&def->mac, macaddr));
switch (def->type) {
case VIR_DOMAIN_NET_TYPE_BRIDGE:
diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c
index 73ba06b..405ebf3 100644
--- a/src/xenxs/xen_xm.c
+++ b/src/xenxs/xen_xm.c
@@ -1,7 +1,7 @@
/*
* xen_xm.c: Xen XM parsing functions
*
- * Copyright (C) 2006-2007, 2009-2010, 2012 Red Hat, Inc.
+ * Copyright (C) 2006-2007, 2009-2010, 2012, 2013 Red Hat, Inc.
* Copyright (C) 2011 Univention GmbH
* Copyright (C) 2006 Daniel P. Berrange
*
@@ -1335,11 +1335,9 @@ static int xenFormatXMNet(virConnectPtr conn,
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
virConfValuePtr val, tmp;
+ char macaddr[VIR_MAC_STRING_BUFLEN];
- virBufferAsprintf(&buf, "mac=%02x:%02x:%02x:%02x:%02x:%02x",
- net->mac.addr[0], net->mac.addr[1],
- net->mac.addr[2], net->mac.addr[3],
- net->mac.addr[4], net->mac.addr[5]);
+ virBufferAsprintf(&buf, "mac=%s", virMacAddrFormat(&net->mac,
macaddr));
switch (net->type) {
case VIR_DOMAIN_NET_TYPE_BRIDGE:
--
Martin