Diff for /libelwix/src/net.c between versions 1.21 and 1.22

version 1.21, 2020/05/27 15:03:28 version 1.22, 2022/09/26 19:39:23
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 - 2020Copyright 2004 - 2022
         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 813  e_network(const char *csAddr, netaddr_t * __restrict n Line 813  e_network(const char *csAddr, netaddr_t * __restrict n
                 if (mask > 128)                  if (mask > 128)
                         return -1;                          return -1;
                 else {                  else {
   #ifndef __linux__
                         for (i = 0; i < 4 && (mask / 32); i++, mask -= 32)                          for (i = 0; i < 4 && (mask / 32); i++, mask -= 32)
                                 net->mask.in6.__u6_addr.__u6_addr32[i] = 0xFFFFFFFF;                                  net->mask.in6.__u6_addr.__u6_addr32[i] = 0xFFFFFFFF;
                         if (mask)                          if (mask)
                                 net->mask.in6.__u6_addr.__u6_addr32[i] = E_CIDRMASK(mask % 32);                                  net->mask.in6.__u6_addr.__u6_addr32[i] = E_CIDRMASK(mask % 32);
   #else
                           for (i = 0; i < 4 && (mask / 32); i++, mask -= 32)
                                   net->mask.in6.__in6_u.__u6_addr32[i] = 0xFFFFFFFF;
                           if (mask)
                                   net->mask.in6.__in6_u.__u6_addr32[i] = E_CIDRMASK(mask % 32);
   #endif
                 }                  }
   
                 inet_pton(AF_INET6, szAddr, &a.in6);                  inet_pton(AF_INET6, szAddr, &a.in6);
   
 #ifndef __linux__  #ifndef __linux__
                 net->addr.sin6.sin6_len = sizeof net->addr.sin6;                  net->addr.sin6.sin6_len = sizeof net->addr.sin6;
 #endif  
                 for (i = 0; i < 4; i++)                  for (i = 0; i < 4; i++)
                         net->addr.sin6.sin6_addr.__u6_addr.__u6_addr32[i] =                           net->addr.sin6.sin6_addr.__u6_addr.__u6_addr32[i] = 
                                 a.in6.__u6_addr.__u6_addr32[i] & net->mask.in6.__u6_addr.__u6_addr32[i];                                  a.in6.__u6_addr.__u6_addr32[i] & net->mask.in6.__u6_addr.__u6_addr32[i];
   #else
                   for (i = 0; i < 4; i++)
                           net->addr.sin6.sin6_addr.__in6_u.__u6_addr32[i] = 
                                   a.in6.__in6_u.__u6_addr32[i] & net->mask.in6.__in6_u.__u6_addr32[i];
   #endif
         } else {          } else {
                 if (mask > 32)                  if (mask > 32)
                         return -1;                          return -1;

Removed from v.1.21  
changed lines
  Added in v.1.22


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