INSIST((rdtype == dns_rdatatype_a) || (rdtype == dns_rdatatype_aaaa));
if (rdtype == dns_rdatatype_a)
findoptions = DNS_ADBFIND_INET;
- else {
+ else
findoptions = DNS_ADBFIND_INET6;
-#if !defined(ISC_PLATFORM_HAVEIPV6)
- INSIST(0);
-#endif
- }
addr_bucket = DNS_ADB_INVALIDBUCKET;
new_addresses_added = ISC_FALSE;
isc_sockaddr_fromin6(&sockaddr, &in6a, 53);
}
-#if defined(ISC_PLATFORM_HAVEIPV6) /* XXXMLG Should use isc_net_() function? */
if (IN6_IS_ADDR_V4MAPPED(&sockaddr.type.sin6.sin6_addr)
|| IN6_IS_ADDR_V4COMPAT(&sockaddr.type.sin6.sin6_addr)) {
DP(1, "Ignoring IPv6 mapped IPv4 address");
goto next;
}
-#endif
INSIST(nh == NULL);
nh = new_adbnamehook(adb, NULL);
isc_sockaddr_fromin6(&sockaddr, &a6ctx->in6addr, 53);
-#if defined(ISC_PLATFORM_HAVEIPV6) /* XXXMLG Should use isc_net_() function? */
if (IN6_IS_ADDR_V4MAPPED(&sockaddr.type.sin6.sin6_addr)
|| IN6_IS_ADDR_V4COMPAT(&sockaddr.type.sin6.sin6_addr)) {
DP(1, "Ignoring IPv6 mapped IPv4 address");
goto fail;
}
-#endif
foundentry = find_entry_and_lock(adb, &sockaddr, &addr_bucket);
if (foundentry == NULL) {
struct in6_addr {
union {
isc_uint8_t _S6_u8[16];
+ isc_uint16_t _S6_u16[8];
isc_uint32_t _S6_u32[4];
+#if 0 /* Is this really part of the standard? */
isc_uint64_t _S6_u64[2];
+#endif
} _S6_un;
};
-#define s6_addr _S6_un._S6_u8
+#define s6_addr _S6_un._S6_u8
+#define s6_addr8 _S6_un._S6_u8
+#define s6_addr16 _S6_un._S6_u16
+#define s6_addr32 _S6_un._S6_u32
#define IN6ADDR_ANY_INIT {{{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }}}
#define IN6ADDR_LOOPBACK_INIT {{{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }}}