From c86d6b6cb7a649c2aca409bebb9359c001d6bf8d Mon Sep 17 00:00:00 2001 From: Hajimu UMEMOTO Date: Thu, 28 Nov 2002 17:46:40 +0000 Subject: [PATCH] try SIOCGIFINDEX 1st to be able to use network aliasing. Submitted by: jlemon Approved by: re --- lib/libc/net/if_nametoindex.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/libc/net/if_nametoindex.c b/lib/libc/net/if_nametoindex.c index ca92ab7bb7b3..f4748ca4cbcd 100644 --- a/lib/libc/net/if_nametoindex.c +++ b/lib/libc/net/if_nametoindex.c @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -59,9 +60,21 @@ __FBSDID("$FreeBSD$"); unsigned int if_nametoindex(const char *ifname) { + int s; + struct ifreq ifr; struct ifaddrs *ifaddrs, *ifa; unsigned int ni; + s = _socket(AF_INET, SOCK_DGRAM, 0); + if (s != -1) { + strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); + if (_ioctl(s, SIOCGIFINDEX, &ifr) != -1) { + _close(s); + return (ifr.ifr_index); + } + _close(s); + } + if (getifaddrs(&ifaddrs) < 0) return(0);