2011-03-30 12:46:40 +00:00
|
|
|
#include <u.h>
|
|
|
|
#include <libc.h>
|
|
|
|
#include <ip.h>
|
|
|
|
|
|
|
|
int
|
|
|
|
myetheraddr(uchar *to, char *dev)
|
|
|
|
{
|
|
|
|
int n, fd;
|
|
|
|
char buf[256];
|
|
|
|
|
2013-02-23 08:33:04 +00:00
|
|
|
if(*dev == '/' || *dev == '#')
|
2014-04-28 00:32:06 +00:00
|
|
|
snprint(buf, sizeof buf, "%s/addr", dev);
|
2011-03-30 12:46:40 +00:00
|
|
|
else
|
2014-04-28 00:32:06 +00:00
|
|
|
snprint(buf, sizeof buf, "/net/%s/addr", dev);
|
2011-03-30 12:46:40 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
parseether(to, buf);
|
|
|
|
return 0;
|
|
|
|
}
|