Report non-effective primaries

When named is started with -4 or -6 and the primaries for a zone
do not have an IPv4 or IPv6 address respectively issue a log message.
This commit is contained in:
Mark Andrews
2024-06-03 18:34:31 +10:00
parent ecdde04e63
commit 2cd4303249
+28
View File
@@ -5910,6 +5910,32 @@ unlock:
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,
@@ -5950,6 +5976,8 @@ dns_zone_setprimaries(dns_zone_t *zone, isc_sockaddr_t *addresses,
goto unlock;
}
report_no_active_addresses(zone, addresses, count, "primaries");
/*
* Now set up the primaries and primary key lists.
*/