Diff for /libelwix/src/net.c between versions 1.1 and 1.2.2.3

version 1.1, 2013/01/17 10:05:35 version 1.2.2.3, 2013/06/03 13:59:26
Line 54  SUCH DAMAGE. Line 54  SUCH DAMAGE.
  * @len = string length   * @len = string length
  * return: NULL error or !=NULL string a   * return: NULL error or !=NULL string a
  */   */
inline char *char *
 e_ether_ntoa(const struct e_ether_addr *n, char * __restrict a, int len)  e_ether_ntoa(const struct e_ether_addr *n, char * __restrict a, int len)
 {  {
         if (!n || !a)          if (!n || !a)
Line 77  e_ether_ntoa(const struct e_ether_addr *n, char * __re Line 77  e_ether_ntoa(const struct e_ether_addr *n, char * __re
  * @e = ethernet address structure, like struct ether_addr   * @e = ethernet address structure, like struct ether_addr
  * return: NULL error or !=NULL ethernet address structure   * return: NULL error or !=NULL ethernet address structure
  */   */
inline struct e_ether_addr *struct e_ether_addr *
 e_ether_aton(const char *a, struct e_ether_addr *e)  e_ether_aton(const char *a, struct e_ether_addr *e)
 {                         {                       
         int i;          int i;
Line 106  e_ether_aton(const char *a, struct e_ether_addr *e) Line 106  e_ether_aton(const char *a, struct e_ether_addr *e)
  * @addr = Address   * @addr = Address
  * return: 0 not supported family type or port number   * return: 0 not supported family type or port number
  */   */
inline u_shortu_short
 e_n2port(sockaddr_t * __restrict addr)  e_n2port(sockaddr_t * __restrict addr)
 {  {
         u_short port = 0;          u_short port = 0;
Line 274  e_addrcmp(sockaddr_t * __restrict a, sockaddr_t * __re Line 274  e_addrcmp(sockaddr_t * __restrict a, sockaddr_t * __re
  * @usec = microseconds for sleep   * @usec = microseconds for sleep
  * return: -1 interrupted by signal or 0 ok   * return: -1 interrupted by signal or 0 ok
  */   */
inline intint
 e_usleep(u_int usec)  e_usleep(u_int usec)
 {  {
         struct timeval tv = { (time_t) (usec / 1000000), (long) (usec % 1000000) };          struct timeval tv = { (time_t) (usec / 1000000), (long) (usec % 1000000) };
   
         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, inaddr_t * __restrict addr)
   {
           register int i;
           int ret = 0;
   
           if (!net || !addr)
                   return -1;
   
           switch (net->addr.sa.sa_family) {
                   case AF_INET:
                           for (i = 0; i < sizeof(struct in_addr); i++) {
                                   ret = ((caddr_t) &net->addr.sin.sin_addr.s_addr)[i] & 
                                           net->mask.in.s4_addr[i];
                                   ret -= addr->in.s4_addr[i] & net->mask.in.s4_addr[i];
                                   if (ret)
                                           break;
                           }
                           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->in6.s6_addr[i] & net->mask.in6.s6_addr[i];
                                   if (ret)
                                           break;
                           }
                           break;
                   default:
                           return -1;
           }
   
           return !!ret;
 }  }

Removed from v.1.1  
changed lines
  Added in v.1.2.2.3


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