On Wed, Apr 22, 2015 at 12:19:51 +0400, Roman Bogorodskiy wrote:
Build fails on non-Linux systems with this error:
CC util/libvirt_util_la-virnetdev.lo
util/virnetdev.c:364:1: error: unused function 'virNetDevReplaceMacAddress'
[-Werror,-Wunused-function]
virNetDevReplaceMacAddress(const char *linkdev,
^
util/virnetdev.c:406:1: error: unused function 'virNetDevRestoreMacAddress'
[-Werror,-Wunused-function]
virNetDevRestoreMacAddress(const char *linkdev,
^
2 errors generated.
The virNetDev{Restore,Replace}MacAddress() functions are only used
by VF-related routines that are available on Linux only. So move these
functions under the same #ifdef.
---
src/util/virnetdev.c | 176 ++++++++++++++++++++++++++-------------------------
1 file changed, 89 insertions(+), 87 deletions(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index b7ea524..5069064 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -351,93 +351,6 @@ int virNetDevGetMAC(const char *ifname,
A few too many empty lines will remain here.
-/**
- * virNetDevReplaceMacAddress:
- * @macaddress: new MAC address for interface
- * @linkdev: name of interface
- * @stateDir: directory to store old MAC address
- *
- * Returns 0 on success, -1 on failure
- *
- */
...
+static int
+virNetDevRestoreMacAddress(const char *linkdev,
+ const char *stateDir)
+{
+ int rc = -1;
+ char *oldmacname = NULL;
+ char *macstr = NULL;
+ char *path = NULL;
+ virMacAddr oldmac;
+
+ if (virAsprintf(&path, "%s/%s",
+ stateDir,
+ linkdev) < 0)
+ return -1;
+
+ if (virFileReadAll(path, VIR_MAC_STRING_BUFLEN, &macstr) < 0)
+ goto cleanup;
+
+ if (virMacAddrParse(macstr, &oldmac) != 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Cannot parse MAC address from '%s'"),
+ oldmacname);
+ goto cleanup;
+ }
+
+ /*reset mac and remove file-ignore results*/
+ rc = virNetDevSetMAC(linkdev, &oldmac);
+ ignore_value(unlink(path));
+
+ cleanup:
+ VIR_FREE(macstr);
+ VIR_FREE(path);
+ return rc;
+}
+
+
+
And a few too many empty lines are added here.
static struct nla_policy ifla_vf_policy[IFLA_VF_MAX+1] = {
[IFLA_VF_MAC] = { .type = NLA_UNSPEC,
.maxlen = sizeof(struct ifla_vf_mac) },
ACK,
Peter