mirror of https://git.musl-libc.org/git/musl
2 changed files with 36 additions and 0 deletions
@ -0,0 +1,18 @@ |
|||
#define _GNU_SOURCE |
|||
#include <net/if.h> |
|||
#include <sys/socket.h> |
|||
#include <sys/ioctl.h> |
|||
#include <string.h> |
|||
#include "syscall.h" |
|||
|
|||
char *if_indextoname(unsigned index, char *name) |
|||
{ |
|||
struct ifreq ifr; |
|||
int fd, r; |
|||
|
|||
if ((fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) return 0; |
|||
ifr.ifr_ifindex = index; |
|||
r = ioctl(fd, SIOCGIFNAME, &ifr); |
|||
__syscall(SYS_close, fd); |
|||
return r < 0 ? 0 : strncpy(name, ifr.ifr_name, IF_NAMESIZE); |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
#define _GNU_SOURCE |
|||
#include <net/if.h> |
|||
#include <sys/socket.h> |
|||
#include <sys/ioctl.h> |
|||
#include <string.h> |
|||
#include "syscall.h" |
|||
|
|||
unsigned if_nametoindex(const char *name) |
|||
{ |
|||
struct ifreq ifr; |
|||
int fd, r; |
|||
|
|||
if ((fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) return -1; |
|||
strncpy(ifr.ifr_name, name, sizeof ifr.ifr_name); |
|||
r = ioctl(fd, SIOCGIFINDEX, &ifr); |
|||
__syscall(SYS_close, fd); |
|||
return r < 0 ? r : ifr.ifr_ifindex; |
|||
} |
|||
Loading…
Reference in new issue