Diff for /libelwix/src/net.c between versions 1.2 and 1.2.2.1

version 1.2, 2013/05/30 09:07:33 version 1.2.2.1, 2013/06/03 11:41:45
Line 281  e_usleep(u_int usec) Line 281  e_usleep(u_int usec)
   
         return select(0, NULL, NULL, NULL, &tv);          return select(0, NULL, NULL, NULL, &tv);
 }  }
   
   /*
    * e_innet() - Test address match in network
    *
    * @net = network
    * @addr = address
    * return: -1 error, 0 match or 1 not match
    */
   int
   e_innet(netaddr_t * __restrict net, netaddr_t * __restrict addr)
   {
           register int i;
           int ret = 0;
   
           if (!net || !addr)
                   return -1;
   
           if (net->addr.sa.sa_family != addr->addr.sa.sa_family)
                   return -1;
           switch (net->addr.sa.sa_family) {
                   case AF_INET:
                           ret = net->addr.sin.sin_addr.s_addr & net->mask.in.s_addr;
                           ret -= addr->addr.sin.sin_addr.s_addr & addr->mask.in.s_addr;
                           break;
                   case AF_INET6:
                           for (i = 0; i < sizeof(struct in6_addr); i++) {
                                   ret = net->addr.sin6.sin6_addr.s6_addr[i] & net->mask.in6.s6_addr[i];
                                   ret -= addr->addr.sin6.sin6_addr.s6_addr[i] & addr->mask.in6.s6_addr[i];
                                   if (ret)
                                           break;
                           }
                           break;
                   default:
                           return -1;
           }
   
           return !!ret;
   }

Removed from v.1.2  
changed lines
  Added in v.1.2.2.1


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