Diff for /libelwix/src/net.c between versions 1.12.4.2 and 1.12.4.3

version 1.12.4.2, 2016/05/14 13:12:43 version 1.12.4.3, 2016/05/14 13:26:04
Line 499  e_ether_addr(const char *ifname, ether_addr_t * __rest Line 499  e_ether_addr(const char *ifname, ether_addr_t * __rest
         if (!ifname)          if (!ifname)
                 return NULL;                  return NULL;
   
         a = e_malloc(sizeof(ether_addr_t));  
         if (!a)  
                 return NULL;  
         else  
                 memset(a, 0, sizeof(ether_addr_t));  
   
         getifaddrs(&ifa);          getifaddrs(&ifa);
         for (p = ifa; p && p->ifa_name; p = p->ifa_next) {          for (p = ifa; p && p->ifa_name; p = p->ifa_next) {
 #ifndef __linux__  #ifndef __linux__
                 if (p->ifa_name && !strcmp(p->ifa_name, ifname) && p->ifa_addr &&                   if (p->ifa_name && !strcmp(p->ifa_name, ifname) && p->ifa_addr && 
                                 p->ifa_addr->sa_family == AF_LINK) {                                  p->ifa_addr->sa_family == AF_LINK) {
                        memcpy(a, LLADDR((struct sockaddr_dl*) p->ifa_addr), sizeof(ether_addr_t));                        a = e_malloc(sizeof(ether_addr_t));
                         if (a)
                                 memcpy(a, LLADDR((struct sockaddr_dl*) p->ifa_addr), sizeof(ether_addr_t));
                         break;                          break;
                 }                  }
 #else  #else
                 if (p->ifa_name && !strcmp(p->ifa_name, ifname)) {                  if (p->ifa_name && !strcmp(p->ifa_name, ifname)) {
                         s = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);                          s = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
                        if (s == -1) {                        if (s == -1)
                                e_free(a); 
                                a = NULL; 
                                 break;                                  break;
                        } else                        strlcpy(req.ifr_name, ifname, sizeof req.ifr_name);
                                strlcpy(req.ifr_name, ifname, sizeof req.ifr_name);                        if (!ioctl(s, SIOCGIFHWADDR, &req)) {
                        if (ioctl(s, SIOCGIFHWADDR, &req) == -1) {                                a = e_malloc(sizeof(ether_addr_t));
                                e_free(a);                                if (a)
                                a = NULL;                                        memcpy(a, req.ifr_addr.sa_data, sizeof(ether_addr_t));
                        } else                        }
                                memcpy(a, req.ifr_addr.sa_data, sizeof(ether_addr_t)); 
                         break;                          break;
                 }                  }
 #endif  #endif

Removed from v.1.12.4.2  
changed lines
  Added in v.1.12.4.3


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