From e2a6a8f2d6bef2cd16a7860ca40e57cae2ffaa07 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Wed, 16 Mar 2011 10:52:08 +0000 Subject: [PATCH] Add netGetMacAddr function git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@1301 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/ddbbb7376070b3bd615d725ec1ec330a05888345 Author: [CST] Focus Date: 2011-03-16 (Wed, 16 Mar 2011) ------------------ This commit was generated by Migit --- lib/libnet/libnet.c | 20 ++++++++++++++++++++ lib/libnet/libnet.h | 1 + 2 files changed, 21 insertions(+) diff --git a/lib/libnet/libnet.c b/lib/libnet/libnet.c index 70c6f2f2e..439c0cd47 100644 --- a/lib/libnet/libnet.c +++ b/lib/libnet/libnet.c @@ -265,3 +265,23 @@ void netGetNameserver( char *ip ) } fclose(fp); } + +void netGetMacAddr(char * ifname, unsigned char * mac) +{ + int fd; + struct ifreq ifr; + + + memset(mac, 0, 6); + fd = socket(AF_INET, SOCK_DGRAM, 0); + if(fd < 0) + return; + + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, ifname, IFNAMSIZ-1); + + if(ioctl(fd, SIOCGIFHWADDR, &ifr) < 0) + return; + + memmove(mac, ifr.ifr_hwaddr.sa_data, 6); +} diff --git a/lib/libnet/libnet.h b/lib/libnet/libnet.h index a1ddad998..2f1d7fe97 100644 --- a/lib/libnet/libnet.h +++ b/lib/libnet/libnet.h @@ -17,6 +17,7 @@ extern char *netGetHostname( void ); extern void netSetHostname( char *host ); extern void netSetNameserver(const char *ip); extern void netGetNameserver( char *ip ); +extern void netGetMacAddr(char * ifname, unsigned char * mac); #ifdef __cplusplus