OLD | NEW |
1 #define _GNU_SOURCE | 1 #define _GNU_SOURCE |
2 #include <net/if.h> | 2 #include <net/if.h> |
3 #include <sys/socket.h> | 3 #include <sys/socket.h> |
4 #include <sys/ioctl.h> | 4 #include <sys/ioctl.h> |
5 #include <string.h> | 5 #include <string.h> |
6 #include "syscall.h" | 6 #include "syscall.h" |
7 | 7 |
8 char *if_indextoname(unsigned index, char *name) | 8 char* if_indextoname(unsigned index, char* name) { |
9 { | 9 struct ifreq ifr; |
10 » struct ifreq ifr; | 10 int fd, r; |
11 » int fd, r; | |
12 | 11 |
13 » if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) return 0; | 12 if ((fd = socket(AF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC, 0)) < 0) |
14 » ifr.ifr_ifindex = index; | 13 return 0; |
15 » r = ioctl(fd, SIOCGIFNAME, &ifr); | 14 ifr.ifr_ifindex = index; |
16 » __syscall(SYS_close, fd); | 15 r = ioctl(fd, SIOCGIFNAME, &ifr); |
17 » return r < 0 ? 0 : strncpy(name, ifr.ifr_name, IF_NAMESIZE); | 16 __syscall(SYS_close, fd); |
| 17 return r < 0 ? 0 : strncpy(name, ifr.ifr_name, IF_NAMESIZE); |
18 } | 18 } |
OLD | NEW |