Author: glebius
Date: Thu Jan 26 12:04:19 2012
New Revision: 230584
URL: http://svn.freebsd.org/changeset/base/230584

Log:
  Remove casts from inet6 address testing macros, thus preserving
  qualifier from original argument.
  
  Obtained from:        NetBSD, r. 1.67
  Submitted by: maxim

Modified:
  head/sys/netinet6/in6.h

Modified: head/sys/netinet6/in6.h
==============================================================================
--- head/sys/netinet6/in6.h     Thu Jan 26 11:59:48 2012        (r230583)
+++ head/sys/netinet6/in6.h     Thu Jan 26 12:04:19 2012        (r230584)
@@ -235,37 +235,37 @@ extern const struct in6_addr in6addr_lin
  * Unspecified
  */
 #define IN6_IS_ADDR_UNSPECIFIED(a)     \
-       ((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[12]) == 0))
+       ((a)->__u6_addr.__u6_addr32[0] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[1] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[2] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[3] == 0)
 
 /*
  * Loopback
  */
 #define IN6_IS_ADDR_LOOPBACK(a)                \
-       ((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[12]) == ntohl(1)))
+       ((a)->__u6_addr.__u6_addr32[0] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[1] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[2] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[3] == ntohl(1))
 
 /*
  * IPv4 compatible
  */
 #define IN6_IS_ADDR_V4COMPAT(a)                \
-       ((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[12]) != 0) &&        
\
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[12]) != ntohl(1)))
+       ((a)->__u6_addr.__u6_addr32[0] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[1] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[2] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[3] != 0 &&  \
+        (a)->__u6_addr.__u6_addr32[3] != ntohl(1))
 
 /*
  * Mapped
  */
 #define IN6_IS_ADDR_V4MAPPED(a)                      \
-       ((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
-        (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == 
ntohl(0x0000ffff)))
+       ((a)->__u6_addr.__u6_addr32[0] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[1] == 0 &&  \
+        (a)->__u6_addr.__u6_addr32[2] == ntohl(0x0000ffff))
 
 /*
  * KAME Scope Values
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to