summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/if_nameindex.c
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2003-08-13 10:49:24 +0000
committerMystery Man <unknown@mandriva.org>2003-08-13 10:49:24 +0000
commit563ec40ca81867c0d1cea1ae0f2381bfe832af24 (patch)
tree0529018e1ea0aadf30e14c9cc0855231420fd566 /mdk-stage1/dietlibc/lib/if_nameindex.c
parentdbb520cae669edc0b61148daf92caf2cfef3cfed (diff)
downloaddrakx-backup-do-not-use-563ec40ca81867c0d1cea1ae0f2381bfe832af24.tar
drakx-backup-do-not-use-563ec40ca81867c0d1cea1ae0f2381bfe832af24.tar.gz
drakx-backup-do-not-use-563ec40ca81867c0d1cea1ae0f2381bfe832af24.tar.bz2
drakx-backup-do-not-use-563ec40ca81867c0d1cea1ae0f2381bfe832af24.tar.xz
drakx-backup-do-not-use-563ec40ca81867c0d1cea1ae0f2381bfe832af24.zip
This commit was manufactured by cvs2svn to create tag 'V9_2_0_29mdk'.V9_2_0_29mdk
Diffstat (limited to 'mdk-stage1/dietlibc/lib/if_nameindex.c')
-rw-r--r--mdk-stage1/dietlibc/lib/if_nameindex.c40
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;
-}