libiproute: use if_nametoindex
authorRon Yorston <rmy@pobox.com>
Wed, 21 Oct 2015 15:57:25 +0000 (16:57 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 24 Oct 2015 20:04:36 +0000 (22:04 +0200)
Saves 87 bytes.  Assuming, of course, all platforms have it.

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/libiproute/ll_map.c

index e2b85fc7b16b37dba605c74c4c0063528136c045..af9eb46f7e542d704fda89cc8a7a31e51b8e7bab 100644 (file)
@@ -136,7 +136,6 @@ unsigned FAST_FUNC ll_index_to_flags(int idx)
 int FAST_FUNC xll_name_to_index(const char *name)
 {
        int ret = 0;
-       int sock_fd;
 
 /* caching is not warranted - no users which repeatedly call it */
 #ifdef UNUSED
@@ -164,30 +163,8 @@ int FAST_FUNC xll_name_to_index(const char *name)
                        }
                }
        }
-       /* We have not found the interface in our cache, but the kernel
-        * may still know about it. One reason is that we may be using
-        * module on-demand loading, which means that the kernel will
-        * load the module and make the interface exist only when
-        * we explicitely request it (check for dev_load() in net/core/dev.c).
-        * I can think of other similar scenario, but they are less common...
-        * Jean II */
 #endif
-
-       sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
-       if (sock_fd >= 0) {
-               struct ifreq ifr;
-               int tmp;
-
-               strncpy_IFNAMSIZ(ifr.ifr_name, name);
-               ifr.ifr_ifindex = -1;
-               tmp = ioctl(sock_fd, SIOCGIFINDEX, &ifr);
-               close(sock_fd);
-               if (tmp >= 0)
-                       /* In theory, we should redump the interface list
-                        * to update our cache, this is left as an exercise
-                        * to the reader... Jean II */
-                       ret = ifr.ifr_ifindex;
-       }
+       ret = if_nametoindex(name);
 /* out:*/
        if (ret <= 0)
                bb_error_msg_and_die("can't find device '%s'", name);