From: Roman Bogorodskiy Date: Wed, 29 Oct 2014 18:20:47 +0000 (+0300) Subject: virnetdev: stub virNetDev{Add,Del}Multi on FreeBSD X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=00fa136d0b8c7e859f9eb140f9a0500cd3def1e0;p=libvirt.git 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. --- 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 #include 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