add libip
This commit is contained in:
parent
99947423b1
commit
d709423926
13 changed files with 875 additions and 0 deletions
41
src/libip/myetheraddr.c
Normal file
41
src/libip/myetheraddr.c
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <ip.h>
|
||||
|
||||
int
|
||||
myetheraddr(uchar *to, char *dev)
|
||||
{
|
||||
int n, fd;
|
||||
char buf[256], *ptr;
|
||||
|
||||
/* Make one exist */
|
||||
if(*dev == '/')
|
||||
sprint(buf, "%s/clone", dev);
|
||||
else
|
||||
sprint(buf, "/net/%s/clone", dev);
|
||||
fd = open(buf, ORDWR);
|
||||
if(fd >= 0)
|
||||
close(fd);
|
||||
|
||||
if(*dev == '/')
|
||||
sprint(buf, "%s/0/stats", dev);
|
||||
else
|
||||
sprint(buf, "/net/%s/0/stats", dev);
|
||||
fd = open(buf, OREAD);
|
||||
if(fd < 0)
|
||||
return -1;
|
||||
|
||||
n = read(fd, buf, sizeof(buf)-1);
|
||||
close(fd);
|
||||
if(n <= 0)
|
||||
return -1;
|
||||
buf[n] = 0;
|
||||
|
||||
ptr = strstr(buf, "addr: ");
|
||||
if(!ptr)
|
||||
return -1;
|
||||
ptr += 6;
|
||||
|
||||
parseether(to, ptr);
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue