From a3710fdce432af61e64eaf181f65a423f25d8ca0 Mon Sep 17 00:00:00 2001
From: Mats Erik Andersson
Date: Wed, 15 Sep 2010 21:22:38 +0200
Subject: [PATCH 3/3] ifconfig/if_index.c: Condition on !HAVE_STRUCT_IF_NAMEINDEX.
---
ChangeLog | 4 ++++
ifconfig/if_index.c | 16 +++++++++-------
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7d198af..5cb717b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2010-09-15 Mats Erik Andersson
+ * ifconfig/if_nameindex.c: Protect using HAVE_STRUCT_IF_NAMEINDEX.
+
+2010-09-15 Mats Erik Andersson
+
* telnetd/telnetd.c (login_invocation, argp_options):
Access login(1) by detected PATH_LOGIN.
diff --git a/ifconfig/if_index.c b/ifconfig/if_index.c
index 3518b60..2d2b215 100644
--- a/ifconfig/if_index.c
+++ b/ifconfig/if_index.c
@@ -38,11 +38,12 @@
#include
+#ifndef HAVE_STRUCT_IF_NAMEINDEX
unsigned int
if_nametoindex (const char *ifname)
{
int result = 0;
-#ifdef SIOCGIFINDEX
+# ifdef SIOCGIFINDEX
{
int fd = socket (AF_INET, SOCK_DGRAM, 0);
if (fd >= 0)
@@ -57,7 +58,7 @@ if_nametoindex (const char *ifname)
return ifr.ifr_index;
}
}
-#endif
+# endif /* SIOCGIFINDEX */
{
struct if_nameindex *idx;
idx = if_nameindex ();
@@ -95,7 +96,7 @@ if_freenameindex (struct if_nameindex *ifn)
struct if_nameindex *
if_nameindex (void)
{
-#if defined SIOCGIFCONF
+# if defined SIOCGIFCONF
int fd = socket (AF_INET, SOCK_DGRAM, 0);
struct ifconf ifc;
unsigned int i = 0;
@@ -163,11 +164,11 @@ if_nameindex (void)
return NULL;
}
-# if defined SIOCGIFINDEX
+# if defined SIOCGIFINDEX
if (ioctl (fd, SIOCGIFINDEX, cur) >= 0)
idx[i].if_index = cur->ifr_index;
else
-# endif
+# endif
idx[i].if_index = i + 1;
i++;
}
@@ -191,8 +192,9 @@ if_nameindex (void)
close (fd);
return idx;
-#else
+# else /* !SIOCGIFCONF */
errno = ENOSYS;
return NULL;
-#endif
+# endif
}
+#endif /* HAVE_STRUCT_IF_NAMEINDEX */
--
1.6.3.3