if (*ntp != NULL) {
dns_nametree_detach(ntp);
}
+ dns_nametree_create(mctx, DNS_NAMETREE_BOOL, confname, ntp);
+
if (vconfig != NULL) {
maps[i++] = cfg_tuple_get(vconfig, "options");
}
}
}
- dns_nametree_create(mctx, DNS_NAMETREE_BOOL, confname, ntp);
-
name = dns_fixedname_initname(&fixed);
for (element = cfg_list_first(obj); element != NULL;
element = cfg_list_next(element))
/*
* Set supported DNSSEC algorithms.
*/
- dns_resolver_reset_algorithms(view->resolver);
disabled = NULL;
(void)named_config_get(maps, "disable-algorithms", &disabled);
if (disabled != NULL) {
/*
* Set supported DS digest types.
*/
- dns_resolver_reset_ds_digests(view->resolver);
disabled = NULL;
(void)named_config_get(maps, "disable-ds-digests", &disabled);
if (disabled != NULL) {
*/
CHECK(configure_view_dnsseckeys(view, vconfig, config, bindkeys,
auto_root));
- dns_resolver_resetmustbesecure(view->resolver);
+
obj = NULL;
result = named_config_get(maps, "dnssec-must-be-secure", &obj);
if (result == ISC_R_SUCCESS) {
* In DNS_NAMETREE_BITS trees, this returns true if 'name' has a match or
* a closest ancestor in 'nametree' with the 'bit' set in its bitfield.
*
- * If a name is not found, or if 'nametree' is NULL, the default return
- * value is false.
+ * If a name is not found, the default return value is false.
*
* If 'found' is not NULL, the name or ancestor name that was found in
* the tree is copied into it.
* \li only one of 'name' or 'alt' to be valid.
*/
-void
-dns_resolver_reset_algorithms(dns_resolver_t *resolver);
-/*%<
- * Clear the disabled DNSSEC algorithms.
- */
-
-void
-dns_resolver_reset_ds_digests(dns_resolver_t *resolver);
-/*%<
- * Clear the disabled DS digest types.
- */
-
isc_result_t
dns_resolver_disable_algorithm(dns_resolver_t *resolver, const dns_name_t *name,
unsigned int alg);
* crypto libraries if it was not specifically disabled.
*/
-void
-dns_resolver_resetmustbesecure(dns_resolver_t *resolver);
-
isc_result_t
dns_resolver_setmustbesecure(dns_resolver_t *resolver, const dns_name_t *name,
bool value);
dns_ntnode_t *node = NULL;
bool ret = false;
- REQUIRE(nametree == NULL || VALID_NAMETREE(nametree));
-
- if (nametree == NULL) {
- return (false);
- }
+ REQUIRE(VALID_NAMETREE(nametree));
dns_qpmulti_query(nametree->table, &qpr);
result = dns_qp_findname_ancestor(&qpr, name, 0, (void **)&node, NULL);
REQUIRE(atomic_load_acquire(&res->nfctx) == 0);
- /* These must be run before zeroing the magic number */
- dns_resolver_reset_algorithms(res);
- dns_resolver_reset_ds_digests(res);
- dns_resolver_resetmustbesecure(res);
-
res->magic = 0;
+ dns_nametree_detach(&res->algorithms);
+ dns_nametree_detach(&res->digests);
+ dns_nametree_detach(&res->mustbesecure);
+
if (res->querystats != NULL) {
dns_stats_detach(&res->querystats);
}
isc_mutex_init(&res->lock);
isc_mutex_init(&res->primelock);
+ dns_nametree_create(res->mctx, DNS_NAMETREE_BITS, "algorithms",
+ &res->algorithms);
+ dns_nametree_create(res->mctx, DNS_NAMETREE_BITS, "ds-digests",
+ &res->digests);
+ dns_nametree_create(res->mctx, DNS_NAMETREE_BOOL,
+ "dnssec-must-be-secure", &res->mustbesecure);
+
res->magic = RES_MAGIC;
*resp = res;
(void)dns_badcache_print(resolver->badcache, "Bad cache", fp);
}
-void
-dns_resolver_reset_algorithms(dns_resolver_t *resolver) {
- REQUIRE(VALID_RESOLVER(resolver));
-
- if (resolver->algorithms != NULL) {
- dns_nametree_detach(&resolver->algorithms);
- }
-}
-
-void
-dns_resolver_reset_ds_digests(dns_resolver_t *resolver) {
- REQUIRE(VALID_RESOLVER(resolver));
-
- if (resolver->digests != NULL) {
- dns_nametree_detach(&resolver->digests);
- }
-}
-
isc_result_t
dns_resolver_disable_algorithm(dns_resolver_t *resolver, const dns_name_t *name,
unsigned int alg) {
return (ISC_R_RANGE);
}
- if (resolver->algorithms == NULL) {
- dns_nametree_create(resolver->mctx, DNS_NAMETREE_BITS,
- "algorithms", &resolver->algorithms);
- }
-
return (dns_nametree_add(resolver->algorithms, name, alg));
}
return (ISC_R_RANGE);
}
- if (resolver->digests == NULL) {
- dns_nametree_create(resolver->mctx, DNS_NAMETREE_BITS,
- "ds-digests", &resolver->digests);
- }
-
return (dns_nametree_add(resolver->digests, name, digest_type));
}
return (dst_ds_digest_supported(digest_type));
}
-void
-dns_resolver_resetmustbesecure(dns_resolver_t *resolver) {
- REQUIRE(VALID_RESOLVER(resolver));
-
- if (resolver->mustbesecure != NULL) {
- dns_nametree_detach(&resolver->mustbesecure);
- }
-}
-
isc_result_t
dns_resolver_setmustbesecure(dns_resolver_t *resolver, const dns_name_t *name,
bool value) {
REQUIRE(VALID_RESOLVER(resolver));
- if (resolver->mustbesecure == NULL) {
- dns_nametree_create(resolver->mctx, DNS_NAMETREE_BOOL,
- "dnssec-must-be-secure",
- &resolver->mustbesecure);
- }
-
result = dns_nametree_add(resolver->mustbesecure, name, value);
return (result);
}
goto cleanup_peerlist;
}
+ dns_nametree_create(view->mctx, DNS_NAMETREE_COUNT, "sfd", &view->sfd);
+
view->magic = DNS_VIEW_MAGIC;
*viewp = view;
REQUIRE(DNS_VIEW_VALID(view));
- if (view->sfd == NULL) {
- dns_nametree_create(view->mctx, DNS_NAMETREE_COUNT, "sfd",
- &view->sfd);
- }
-
result = dns_nametree_add(view->sfd, name, 0);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
}
dns_name_t *foundname) {
REQUIRE(DNS_VIEW_VALID(view));
- if (view->sfd != NULL) {
- if (!dns_nametree_covered(view->sfd, name, foundname, 0)) {
- dns_name_copy(dns_rootname, foundname);
- }
+ if (!dns_nametree_covered(view->sfd, name, foundname, 0)) {
+ dns_name_copy(dns_rootname, foundname);
}
}
assert_false(dns_nametree_covered(booltree, name, NULL, 0));
}
- /* If the nametree is NULL, dns_nametree_covered() returns false. */
- dns_test_namefromstring("anyname.example.", &fn);
- assert_false(dns_nametree_covered(NULL, name, NULL, 0));
-
/* Check that the found name is as expected */
dns_test_namefromstring("other.example.com.", &fn);
assert_true(dns_nametree_covered(booltree, name, found, 0));