| 12345678910111213141516171819202122232425262728293031323334353637383940 | /* * * Copyright (C) 1998  Kenneth Albanowski <kjahds@kjahds.com>, *                     The Silver Hammer Group, Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * */#define __FORCE_GLIBC#include <features.h>#include <net/if.h>#include <sys/ioctl.h>#include <unistd.h>unsigned int if_nametoindex(const char* blub) {	struct ifreq ifr;	int fd;	char *tmp;	int len=sizeof(ifr.ifr_name);#ifdef __UCLIBC_HAS_IPV6__	fd=socket(AF_INET6,SOCK_DGRAM,0);	if (fd<0)#endif /* __UCLIBC_HAS_IPV6__ */		fd=socket(AF_INET,SOCK_DGRAM,0);	for (tmp=ifr.ifr_name; len>0; --len) {		if ((*tmp++ = *blub++)==0) break;	}	if (ioctl(fd,SIOCGIFINDEX,&ifr)==0) {		close(fd);		return ifr.ifr_ifindex;	}	close(fd);	return 0;}
 |