dns_zone_setkasp(zone, NULL);
}
- obj = NULL;
- result = named_config_get(maps, "checkds", &obj);
- if (result == ISC_R_SUCCESS) {
- if (cfg_obj_isboolean(obj)) {
- if (cfg_obj_asboolean(obj)) {
- checkdstype = dns_checkdstype_yes;
- } else {
- checkdstype = dns_checkdstype_no;
- }
- } else {
- const char *str = cfg_obj_asstring(obj);
- if (strcasecmp(str, "explicit") == 0) {
- checkdstype = dns_checkdstype_explicit;
- } else {
- UNREACHABLE();
- }
- }
- }
- if (raw != NULL) {
- dns_zone_setcheckdstype(raw, dns_checkdstype_no);
- }
- dns_zone_setcheckdstype(zone, checkdstype);
-
obj = NULL;
result = named_config_get(maps, "notify", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
* Configure parental agents, applies to primary and secondary zones.
*/
if (ztype == dns_zone_primary || ztype == dns_zone_secondary) {
- obj = NULL;
- (void)cfg_map_get(zoptions, "parental-agents", &obj);
- if (obj != NULL) {
+ const cfg_obj_t *parentals = NULL;
+ (void)cfg_map_get(zoptions, "parental-agents", &parentals);
+ if (parentals != NULL) {
dns_ipkeylist_t ipkl;
dns_ipkeylist_init(&ipkl);
CHECK(named_config_getipandkeylist(
- config, "parental-agents", obj, mctx, &ipkl));
+ config, "parental-agents", parentals, mctx,
+ &ipkl));
dns_zone_setparentals(zone, ipkl.addrs, ipkl.sources,
ipkl.keys, ipkl.tlss, ipkl.count);
dns_ipkeylist_clear(mctx, &ipkl);
} else {
dns_zone_setparentals(zone, NULL, NULL, NULL, NULL, 0);
}
+
+ obj = NULL;
+ result = named_config_get(maps, "checkds", &obj);
+ if (result == ISC_R_SUCCESS) {
+ if (cfg_obj_isboolean(obj)) {
+ if (cfg_obj_asboolean(obj)) {
+ checkdstype = dns_checkdstype_yes;
+ } else {
+ checkdstype = dns_checkdstype_no;
+ }
+ } else {
+ const char *str = cfg_obj_asstring(obj);
+ if (strcasecmp(str, "explicit") == 0) {
+ checkdstype = dns_checkdstype_explicit;
+ } else {
+ UNREACHABLE();
+ }
+ }
+ } else if (parentals != NULL) {
+ checkdstype = dns_checkdstype_explicit;
+ } else {
+ checkdstype = dns_checkdstype_yes;
+ }
+ if (raw != NULL) {
+ dns_zone_setcheckdstype(raw, dns_checkdstype_no);
+ }
+ dns_zone_setcheckdstype(zone, checkdstype);
}
/*%
inline-signing yes;
dnssec-policy "default";
parental-agents { 10.53.0.8 port @PORT@; };
- checkds explicit;
};
/* Same as above, but now with a reference to parental-agents. */
inline-signing yes;
dnssec-policy "default";
parental-agents { "ns8"; };
- checkds explicit;
};
/* Same as above, but now with resolver parental agent configured. */
parental-agents {
10.53.0.3 port @PORT@;
};
- checkds explicit;
};
/* Same as above, but now with auto parental agents. */
parental-agents {
10.53.0.5 port @PORT@; // missing
};
- checkds explicit;
};
zone "not-yet.yes.dspublish.ns5" {
parental-agents {
10.53.0.6 port @PORT@; // bad
};
- checkds explicit;
};
zone "bad.yes.dspublish.ns6" {
10.53.0.8 port @PORT@;
10.53.0.4 port @PORT@;
};
- checkds explicit;
};
zone "good.yes.dspublish.ns2-4" {
10.53.0.4 port @PORT@;
10.53.0.5 port @PORT@; // missing
};
- checkds explicit;
};
zone "incomplete.yes.dspublish.ns2-4-5" {
10.53.0.4 port @PORT@;
10.53.0.6 port @PORT@; // bad
};
- checkds explicit;
};
zone "bad.yes.dspublish.ns2-4-6" {
inline-signing yes;
dnssec-policy "insecure";
parental-agents { 10.53.0.10 port @PORT@; };
- checkds explicit;
};
zone "resolver.explicit.dsremoved.ns5" {
parental-agents {
10.53.0.3 port @PORT@;
};
- checkds explicit;
};
zone "good.yes.dsremoved.ns5" {
parental-agents {
10.53.0.2 port @PORT@; // still published
};
- checkds explicit;
};
zone "still-there.yes.dsremoved.ns2" {
parental-agents {
10.53.0.6 port @PORT@; // bad
};
- checkds explicit;
};
zone "bad.yes.dsremoved.ns6" {
10.53.0.10 port @PORT@;
10.53.0.7 port @PORT@;
};
- checkds explicit;
};
zone "good.yes.dsremoved.ns5-7" {
10.53.0.10 port @PORT@;
10.53.0.7 port @PORT@;
};
- checkds explicit;
};
zone "incomplete.yes.dsremoved.ns2-5-7" {
10.53.0.7 port @PORT@;
10.53.0.6 port @PORT@; // bad
};
- checkds explicit;
};
zone "bad.yes.dsremoved.ns5-6-7" {