]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
add IPV6 macros for unspecified, loopback, v4compat, and v4mapped addresses
authorMichael Graff <mgraff@isc.org>
Thu, 2 Dec 1999 22:50:17 +0000 (22:50 +0000)
committerMichael Graff <mgraff@isc.org>
Thu, 2 Dec 1999 22:50:17 +0000 (22:50 +0000)
lib/isc/include/isc/ipv6.h

index 36606442af11f3f8442e69e2a0366b2a1f8146c1..9b8a229457980af1746cfa04f4477c0a70822527 100644 (file)
@@ -86,6 +86,42 @@ struct sockaddr_in6 {
 #define SIN6_LEN 1
 #endif
 
+/*
+ * Unspecified
+ */
+#define IN6_IS_ADDR_UNSPECIFIED(a)      \
+        (((a)->s6_addr32[0] == 0) &&    \
+         ((a)->s6_addr32[1] == 0) &&    \
+         ((a)->s6_addr32[2] == 0) &&    \
+         ((a)->s6_addr32[3] == 0))
+
+/*
+ * Loopback
+ */
+#define IN6_IS_ADDR_LOOPBACK(a)         \
+        (((a)->s6_addr32[0] == 0) &&    \
+         ((a)->s6_addr32[1] == 0) &&    \
+         ((a)->s6_addr32[2] == 0) &&    \
+         ((a)->s6_addr32[3] == htonl(1)))
+
+/*
+ * IPv4 compatible
+ */
+#define IN6_IS_ADDR_V4COMPAT(a)         \
+        (((a)->s6_addr32[0] == 0) &&    \
+         ((a)->s6_addr32[1] == 0) &&    \
+         ((a)->s6_addr32[2] == 0) &&    \
+         ((a)->s6_addr32[3] != 0) &&    \
+         ((a)->s6_addr32[3] != htonl(1)))
+
+/*
+ * Mapped
+ */
+#define IN6_IS_ADDR_V4MAPPED(a)               \
+        (((a)->s6_addr32[0] == 0) &&          \
+         ((a)->s6_addr32[1] == 0) &&          \
+         ((a)->s6_addr32[2] == htonl(0x0000ffff)))
+
 ISC_LANG_ENDDECLS
 
 #endif /* ISC_IPV6_H */