diff options
author | Mystery Man <unknown@mandriva.org> | 2004-07-15 06:27:30 +0000 |
---|---|---|
committer | Mystery Man <unknown@mandriva.org> | 2004-07-15 06:27:30 +0000 |
commit | 9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2 (patch) | |
tree | b5ddf2e127d03e3a0f8fbf0caded464da2ed447c /mdk-stage1/dietlibc/lib/if_nameindex.c | |
parent | 416a326f1fc775511cf1eac2c04cca2a69d9961a (diff) | |
download | drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.tar drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.tar.gz drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.tar.bz2 drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.tar.xz drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.zip |
This commit was manufactured by cvs2svn to create tag 'V10_54mdk'.V10_54mdk
Diffstat (limited to 'mdk-stage1/dietlibc/lib/if_nameindex.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/if_nameindex.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/mdk-stage1/dietlibc/lib/if_nameindex.c b/mdk-stage1/dietlibc/lib/if_nameindex.c deleted file mode 100644 index fc0e1c0ff..000000000 --- a/mdk-stage1/dietlibc/lib/if_nameindex.c +++ /dev/null @@ -1,40 +0,0 @@ -#include <net/if.h> -#include <unistd.h> -#include <string.h> -#include <stdlib.h> -#include <sys/ioctl.h> -#include <stdio.h> - -struct if_nameindex* if_nameindex(void) { - struct ifconf ic; - int fd,len,i; - struct if_nameindex* x,* y; - char *dest; - fd=socket(AF_INET6,SOCK_DGRAM,0); - if (fd<0) fd=socket(AF_INET,SOCK_DGRAM,0); - ic.ifc_buf=0; - ic.ifc_len=0; - if (ioctl(fd,SIOCGIFCONF,&ic)<0) { -b0rken: - close(fd); - return 0; - } - ic.ifc_buf=alloca((size_t)ic.ifc_len); - if (ioctl(fd,SIOCGIFCONF,&ic)<0) goto b0rken; - len=(ic.ifc_len/sizeof(struct ifreq)); - x=(struct if_nameindex*)malloc((len+1)*sizeof(struct if_nameindex)+len*IFNAMSIZ); - if (!x) goto b0rken; - dest=(char*)(x+len+1); - y=x; - for (i=0; i<len; ++i) { - struct ifreq* ir=(struct ifreq*)&ic.ifc_req[i]; - y->if_name=dest; - memcpy(dest,ir->ifr_name,IFNAMSIZ); - if (ioctl(fd,SIOCGIFINDEX,ir)==-1) continue; - y->if_index=ir->ifr_ifindex; - dest+=IFNAMSIZ; - ++y; - } - y->if_name=0; y->if_index=0; - return x; -} |