UNLOCK_ZONE(zone);
}
+static bool
+has_pf(isc_sockaddr_t *addresses, size_t count, int pf) {
+ for (size_t i = 0; i < count; i++) {
+ if (isc_sockaddr_pf(&addresses[i]) == pf) {
+ return (true);
+ }
+ }
+ return (false);
+}
+
+static void
+report_no_active_addresses(dns_zone_t *zone, isc_sockaddr_t *addresses,
+ size_t count, const char *what) {
+ if (isc_net_probeipv4() == ISC_R_DISABLED) {
+ if (!has_pf(addresses, count, AF_INET6)) {
+ dns_zone_log(zone, ISC_LOG_NOTICE,
+ "IPv4 disabled and no IPv6 %s", what);
+ }
+ } else if (isc_net_probeipv6() == ISC_R_DISABLED) {
+ if (!has_pf(addresses, count, AF_INET)) {
+ dns_zone_log(zone, ISC_LOG_NOTICE,
+ "IPv6 disabled and no IPv4 %s", what);
+ }
+ }
+}
+
void
dns_zone_setprimaries(dns_zone_t *zone, isc_sockaddr_t *addresses,
isc_sockaddr_t *sources, dns_name_t **keynames,
goto unlock;
}
+ report_no_active_addresses(zone, addresses, count, "primaries");
+
/*
* Now set up the primaries and primary key lists.
*/