summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Bogorodskiy <bogorodskiy@gmail.com>2014-10-29 21:20:47 +0300
committerRoman Bogorodskiy <bogorodskiy@gmail.com>2014-10-30 07:59:39 +0300
commit00fa136d0b8c7e859f9eb140f9a0500cd3def1e0 (patch)
tree7ae3704124aa4176a55a89e16b62b77e46c71a62
parent9babbaa5fe38a433cef759a930e49d8291f040a8 (diff)
downloadlibvirt-00fa136d0b8c7e859f9eb140f9a0500cd3def1e0.tar.gz
virnetdev: stub virNetDev{Add,Del}Multi on FreeBSD
Currently, build fails on FreeBSD because its struct ifreq does not have ifr_hwaddr member. In order to fix that, check if this member is present, otherwise fall back to the stub version of the virNetDev{Add,Del}Multi functions.
-rw-r--r--configure.ac3
-rw-r--r--src/util/virnetdev.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index f7b02ff80e..31c5fa28bd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2694,7 +2694,8 @@ AC_SUBST([ws_plugindir])
# Check for Linux vs. BSD ifreq members
AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
struct ifreq.ifr_ifindex,
- struct ifreq.ifr_index],
+ struct ifreq.ifr_index,
+ struct ifreq.ifr_hwaddr],
[], [],
[#include <sys/socket.h>
#include <net/if.h>
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 0c9c1f907d..6da3371d55 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -1975,7 +1975,8 @@ virNetDevGetLinkInfo(const char *ifname,
#endif /* defined(__linux__) */
-#if defined(SIOCADDMULTI) && defined(HAVE_STRUCT_IFREQ)
+#if defined(SIOCADDMULTI) && defined(HAVE_STRUCT_IFREQ) && \
+ defined(HAVE_STRUCT_IFREQ_IFR_HWADDR)
/**
* virNetDevAddMulti:
* @ifname: interface name to which to add multicast MAC address
@@ -2023,7 +2024,8 @@ int virNetDevAddMulti(const char *ifname ATTRIBUTE_UNUSED,
}
#endif
-#if defined(SIOCDELMULTI) && defined(HAVE_STRUCT_IFREQ)
+#if defined(SIOCDELMULTI) && defined(HAVE_STRUCT_IFREQ) && \
+ defined(HAVE_STRUCT_IFREQ_IFR_HWADDR)
/**
* virNetDevDelMulti:
* @ifname: interface name from which to delete the multicast MAC address