mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
41 lines
622 B
C
41 lines
622 B
C
#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;
|
|
}
|