summaryrefslogtreecommitdiff
path: root/agent/interfaces.c
diff options
context:
space:
mode:
Diffstat (limited to 'agent/interfaces.c')
-rw-r--r--agent/interfaces.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/agent/interfaces.c b/agent/interfaces.c
index 9133b2c..740d3e2 100644
--- a/agent/interfaces.c
+++ b/agent/interfaces.c
@@ -373,7 +373,7 @@ get_local_ips_ioctl (gboolean include_loopback)
static guint
get_local_if_index_by_addr_ioctl (NiceAddress *addr)
{
-#ifdef HAVE_IFR_INDEX
+#if defined(HAVE_IFR_INDEX) || defined(HAVE_IFR_IFINDEX)
gint sockfd;
gint size = 0;
struct ifreq *ifr;
@@ -417,10 +417,18 @@ get_local_if_index_by_addr_ioctl (NiceAddress *addr)
if (!nice_address_equal_no_port (myaddr, addr))
continue;
+#if defined(HAVE_IFR_INDEX)
if (ifr->ifr_index == 0)
+#else
+ if (ifr->ifr_ifindex == 0)
+#endif
continue;
+#if defined(HAVE_IFR_INDEX)
if_index = ifr->ifr_index;
+#else
+ if_index = ifr->ifr_ifindex;
+#endif
break;
}
@@ -430,7 +438,8 @@ get_local_if_index_by_addr_ioctl (NiceAddress *addr)
return if_index;
#else
g_critical ("getifaddrs() should not fail on a platform that doesn't"
- " include ifr_index in the struct ifreq. Please report the bug.");
+ " include ifr_index or ifr_ifindex in the struct ifreq."
+ " Please report the bug.");
return 0;
#endif
}