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

version 1.12.4.1, 2016/05/14 11:31:38 version 1.12.4.2, 2016/05/14 13:12:43
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004 - 2015Copyright 2004 - 2016
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 506  e_ether_addr(const char *ifname, ether_addr_t * __rest Line 506  e_ether_addr(const char *ifname, ether_addr_t * __rest
                 memset(a, 0, sizeof(ether_addr_t));                  memset(a, 0, sizeof(ether_addr_t));
   
         getifaddrs(&ifa);          getifaddrs(&ifa);
        for (p = ifa; p && p->ifa_name; p++)        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) {
Line 530  e_ether_addr(const char *ifname, ether_addr_t * __rest Line 530  e_ether_addr(const char *ifname, ether_addr_t * __rest
                         break;                          break;
                 }                  }
 #endif  #endif
           }
         freeifaddrs(ifa);          freeifaddrs(ifa);
   
         return a;          return a;
Line 556  e_get1stiface(char *szIface, int iflen) Line 557  e_get1stiface(char *szIface, int iflen)
         return 0;          return 0;
 }  }
   
   #ifndef __linux__
 /*  /*
  * e_getifacebyname() - Get interface and make network structure   * e_getifacebyname() - Get interface and make network structure
  *   *
Line 566  e_get1stiface(char *szIface, int iflen) Line 568  e_get1stiface(char *szIface, int iflen)
 sockaddr_t *  sockaddr_t *
 e_getifacebyname(const char *psIface, sockaddr_t * __restrict addr)  e_getifacebyname(const char *psIface, sockaddr_t * __restrict addr)
 {  {
 #ifndef __linux__  
         char szIface[64] = { [0 ... 63] = 0 };          char szIface[64] = { [0 ... 63] = 0 };
         struct ifaddrs *p, *ifa = NULL;          struct ifaddrs *p, *ifa = NULL;
   
Line 576  e_getifacebyname(const char *psIface, sockaddr_t * __r Line 577  e_getifacebyname(const char *psIface, sockaddr_t * __r
         memset(addr, 0, sizeof(sockaddr_t));          memset(addr, 0, sizeof(sockaddr_t));
         getifaddrs(&ifa);          getifaddrs(&ifa);
         strlcpy(szIface, psIface ? psIface : ifa->ifa_name, sizeof szIface);          strlcpy(szIface, psIface ? psIface : ifa->ifa_name, sizeof szIface);
        for (p = ifa; p && p->ifa_name; p++)        for (p = ifa; p && p->ifa_name; p = p->ifa_next)
                 if (p->ifa_name && !strcmp(p->ifa_name, szIface) && p->ifa_addr &&                   if (p->ifa_name && !strcmp(p->ifa_name, szIface) && p->ifa_addr && 
                                 p->ifa_addr->sa_family == AF_LINK) {                                  p->ifa_addr->sa_family == AF_LINK) {
                         memcpy(&addr->sdl, p->ifa_addr, sizeof(struct sockaddr_dl));                          memcpy(&addr->sdl, p->ifa_addr, sizeof(struct sockaddr_dl));
Line 585  e_getifacebyname(const char *psIface, sockaddr_t * __r Line 586  e_getifacebyname(const char *psIface, sockaddr_t * __r
         freeifaddrs(ifa);          freeifaddrs(ifa);
   
         return addr;          return addr;
 #else  
         elwix_SetErr(ENOSYS, "Unsuported routine on linux");  
         return NULL;  
 #endif  
 }  }
   
 /*  /*
Line 601  e_getifacebyname(const char *psIface, sockaddr_t * __r Line 598  e_getifacebyname(const char *psIface, sockaddr_t * __r
 sockaddr_t *  sockaddr_t *
 e_getlinkbyname(const char *psHost, sockaddr_t * __restrict addr)  e_getlinkbyname(const char *psHost, sockaddr_t * __restrict addr)
 {  {
 #ifndef __linux__  
         ait_val_t v;          ait_val_t v;
         sockaddr_t *a = addr;          sockaddr_t *a = addr;
   
Line 621  e_getlinkbyname(const char *psHost, sockaddr_t * __res Line 617  e_getlinkbyname(const char *psHost, sockaddr_t * __res
   
         AIT_FREE_VAL(&v);          AIT_FREE_VAL(&v);
         return a;          return a;
 #else  
         elwix_SetErr(ENOSYS, "Unsuported routine on linux");  
         return NULL;  
 #endif  
 }  }
   
 /*  /*
Line 641  sockaddr_t * Line 633  sockaddr_t *
 e_getlinkbyether(const ether_addr_t * __restrict mac, u_short idx, u_char type,   e_getlinkbyether(const ether_addr_t * __restrict mac, u_short idx, u_char type, 
                 const char *iface, sockaddr_t * __restrict addr)                  const char *iface, sockaddr_t * __restrict addr)
 {  {
 #ifndef __linux__  
         sockaddr_t *a = addr;          sockaddr_t *a = addr;
   
         if (!addr)          if (!addr)
Line 661  e_getlinkbyether(const ether_addr_t * __restrict mac,  Line 652  e_getlinkbyether(const ether_addr_t * __restrict mac, 
         memcpy(LLADDR(&addr->sdl), mac, addr->sdl.sdl_alen);          memcpy(LLADDR(&addr->sdl), mac, addr->sdl.sdl_alen);
   
         return a;          return a;
 #else  
         elwix_SetErr(ENOSYS, "Unsuported routine on linux");  
         return NULL;  
 #endif  
 }  }
   #endif

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


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