aboutsummaryrefslogtreecommitdiff
path: root/pcap-linux.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2015-12-22 15:42:05 -0800
committerGuy Harris <guy@alum.mit.edu>2015-12-22 15:42:05 -0800
commitb93dd031e519cca9bead96361d4fde7f3a68a04e (patch)
tree8dc3a3f7ef9e5ebe62cbf577573270c8c96ca86a /pcap-linux.c
parente627474b63517588367ea9c7faec822b2059f36b (diff)
More cleanups of the "is this a bonding device?" check.
Diffstat (limited to 'pcap-linux.c')
-rw-r--r--pcap-linux.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/pcap-linux.c b/pcap-linux.c
index de3b4ff1..90459f8e 100644
--- a/pcap-linux.c
+++ b/pcap-linux.c
@@ -221,7 +221,16 @@
#ifdef HAVE_LINUX_IF_BONDING_H
#include <linux/if_bonding.h>
+
+/*
+ * The ioctl code to use to check whether a device is a bonding device.
+ */
+#if defined(SIOCBONDINFOQUERY)
+ #define BOND_INFO_QUERY_IOCTL SIOCBONDINFOQUERY
+#elif defined(BOND_INFO_QUERY_OLD)
+ #define BOND_INFO_QUERY_IOCTL BOND_INFO_QUERY_OLD
#endif
+#endif /* HAVE_LINUX_IF_BONDING_H */
/*
* Got Wireless Extensions?
@@ -984,15 +993,9 @@ added:
static int
is_bonding_device(int fd, const char *device)
{
-#if defined(HAVE_LINUX_IF_BONDING_H) && \
- (defined(BOND_INFO_QUERY_OLD) || defined(SIOCBONDINFOQUERY))
+#ifdef BOND_INFO_QUERY_IOCTL
struct ifreq ifr;
ifbond ifb;
-#ifdef SIOCBONDINFOQUERY
- #define BOND_INFO_QUERY_IOCTL SIOCBONDINFOQUERY
-#else /* SIOCBONDINFOQUERY */
- #define BOND_INFO_QUERY_IOCTL BOND_INFO_QUERY_OLD
-#endif /* SIOCBONDINFOQUERY */
memset(&ifr, 0, sizeof ifr);
strlcpy(ifr.ifr_name, device, sizeof ifr.ifr_name);
@@ -1000,8 +1003,7 @@ is_bonding_device(int fd, const char *device)
ifr.ifr_data = (caddr_t)&ifb;
if (ioctl(fd, BOND_INFO_QUERY_IOCTL, &ifr) == 0)
return 1; /* success, so it's a bonding device */
-#endif /* defined(HAVE_LINUX_IF_BONDING_H) && \
- (defined(BOND_INFO_QUERY_OLD) || defined(SIOCBONDINFOQUERY)) */
+#endif /* BOND_INFO_QUERY_IOCTL */
return 0; /* no, it's not a bonding device */
}