Diff for /libelwix/src/net.c between versions 1.6 and 1.6.4.1

version 1.6, 2013/06/20 14:55:23 version 1.6.4.1, 2013/07/08 01:11:34
Line 438  e_getnet(const char *net) Line 438  e_getnet(const char *net)
         e_free(str);          e_free(str);
         return n;          return n;
 }  }
   
   /*
    * e_ether_addr() - Get or set ethernet address from interface name
    *
    * @ifname = interface name
    * @addr = if addr is !=NULL then set this for new address
    * return: NULL error or !=NULL get ethernet address
    */
   ether_addr_t *
   e_ether_addr(const char *ifname, ether_addr_t * __restrict addr)
   {
           ether_addr_t *a = NULL;
           struct ifaddrs *p, *ifa = NULL;
   
           if (!ifname)
                   return NULL;
   
           a = e_malloc(sizeof(ether_addr_t));
           if (!a)
                   return NULL;
           else
                   memset(a, 0, sizeof(ether_addr_t));
   
           getifaddrs(&ifa);
           for (p = ifa; p; p++)
                   if (!strcmp(p->ifa_name, ifname) && p->ifa_addr && 
                                   p->ifa_addr->sa_family == AF_LINK) {
                           memcpy(a, LLADDR((struct sockaddr_dl*) p->ifa_addr), sizeof(ether_addr_t));
                           break;
                   }
           freeifaddrs(ifa);
   
           return a;
   }

Removed from v.1.6  
changed lines
  Added in v.1.6.4.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>