--- /dev/null
+/*
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+ *
+ * SPDX-License-Identifier: MPL-2.0
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, you can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See the COPYRIGHT file distributed with this work for additional
+ * information regarding copyright ownership.
+ */
+
+/*
+ * inline-signing is a boolean value.
+ */
+dnssec-policy "inline" {
+ inline-signing never-ever;
+};
+
+zone "." {
+ type primary;
+ file "root.db";
+ dnssec-policy "inline";
+};
bool dlz;
bool ddns = false;
bool has_dnssecpolicy = false;
+ bool kasp_inlinesigning = false;
const void *clauses = NULL;
const char *option = NULL;
const char *kaspname = NULL;
kaspname = cfg_obj_asstring(obj);
if (strcmp(kaspname, "default") == 0) {
has_dnssecpolicy = true;
+ kasp_inlinesigning = true;
} else if (strcmp(kaspname, "insecure") == 0) {
has_dnssecpolicy = true;
+ kasp_inlinesigning = true;
} else if (strcmp(kaspname, "none") == 0) {
has_dnssecpolicy = false;
+ kasp_inlinesigning = false;
} else {
(void)cfg_map_get(config, "dnssec-policy", &kasps);
for (element = cfg_list_first(kasps); element != NULL;
if (strcmp(kaspname, cfg_obj_asstring(kobj)) ==
0)
{
+ const cfg_obj_t *inlinesigning = NULL;
+ const cfg_obj_t *kopt = cfg_tuple_get(
+ cfg_listelt_value(element),
+ "options");
+ if (cfg_map_get(kopt, "inline-signing",
+ &inlinesigning) ==
+ ISC_R_SUCCESS)
+ {
+ kasp_inlinesigning =
+ cfg_obj_asboolean(
+ inlinesigning);
+ } else {
+ /* By default true */
+ kasp_inlinesigning = true;
+ }
+
has_dnssecpolicy = true;
+ break;
}
}
res1 = cfg_map_get(zoptions, "inline-signing", &obj);
if (res1 == ISC_R_SUCCESS) {
signing = cfg_obj_asboolean(obj);
+ } else if (has_dnssecpolicy) {
+ signing = kasp_inlinesigning;
}
if (has_dnssecpolicy) {