Lines Matching defs:resolver

1 /*	$NetBSD: resolver.c,v 1.21 2025/01/26 16:25:25 christos Exp $	*/
71 #include <dns/resolver.h>
192 * values of 'resolver-query-timeout' less than or equal to 300 are treated as
722 * The structure and functions defined below implement the resolver
725 * When a resolver query is sent and a response is received, the
769 * - If referral, set up the resolver to follow the delegation
944 * Increment resolver-related statistics counters.
2021 * a dispatch for it here. Otherwise we use the resolver's
2350 FCTXTRACE("resquery_send: resolver shutting down");
3331 * The find may be waiting on a resolver fetch for a server
3472 * resolver's forwarders (if any).
7311 FCTXTRACE("resolver shutting down");
8525 * Handle responses that match the QNAME/QTYPE of the resolver query.
9568 * This resolver query response is finished, either because we
9960 * Create a resolver.
10061 "resolver priming query complete: %s",
10114 * holding no resolver locks. No one else will try to
10145 * Freeze resolver.
10650 dns_resolver_dispatchv4(dns_resolver_t *resolver) {
10651 REQUIRE(VALID_RESOLVER(resolver));
10652 return dns_dispatchset_get(resolver->dispatches4);
10656 dns_resolver_dispatchv6(dns_resolver_t *resolver) {
10657 REQUIRE(VALID_RESOLVER(resolver));
10658 return dns_dispatchset_get(resolver->dispatches6);
10685 dns_resolver_disable_algorithm(dns_resolver_t *resolver, const dns_name_t *name,
10687 REQUIRE(VALID_RESOLVER(resolver));
10693 return dns_nametree_add(resolver->algorithms, name, alg);
10697 dns_resolver_disable_ds_digest(dns_resolver_t *resolver, const dns_name_t *name,
10699 REQUIRE(VALID_RESOLVER(resolver));
10705 return dns_nametree_add(resolver->digests, name, digest_type);
10709 dns_resolver_algorithm_supported(dns_resolver_t *resolver,
10711 REQUIRE(VALID_RESOLVER(resolver));
10717 if (dns_nametree_covered(resolver->algorithms, name, NULL, alg)) {
10725 dns_resolver_ds_digest_supported(dns_resolver_t *resolver,
10728 REQUIRE(VALID_RESOLVER(resolver));
10730 if (dns_nametree_covered(resolver->digests, name, NULL, digest_type)) {
10738 dns_resolver_setmustbesecure(dns_resolver_t *resolver, const dns_name_t *name,
10742 REQUIRE(VALID_RESOLVER(resolver));
10744 result = dns_nametree_add(resolver->mustbesecure, name, value);
10749 dns_resolver_getmustbesecure(dns_resolver_t *resolver, const dns_name_t *name) {
10750 REQUIRE(VALID_RESOLVER(resolver));
10752 return dns_nametree_covered(resolver->mustbesecure, name, NULL, 0);
10756 dns_resolver_getclientsperquery(dns_resolver_t *resolver, uint32_t *cur,
10758 REQUIRE(VALID_RESOLVER(resolver));
10760 LOCK(&resolver->lock);
10761 SET_IF_NOT_NULL(cur, resolver->spillat);
10762 SET_IF_NOT_NULL(min, resolver->spillatmin);
10763 SET_IF_NOT_NULL(max, resolver->spillatmax);
10764 UNLOCK(&resolver->lock);
10768 dns_resolver_setclientsperquery(dns_resolver_t *resolver, uint32_t min,
10770 REQUIRE(VALID_RESOLVER(resolver));
10772 LOCK(&resolver->lock);
10773 resolver->spillatmin = resolver->spillat = min;
10774 resolver->spillatmax = max;
10775 UNLOCK(&resolver->lock);
10779 dns_resolver_setfetchesperzone(dns_resolver_t *resolver, uint32_t clients) {
10780 REQUIRE(VALID_RESOLVER(resolver));
10782 atomic_store_release(&resolver->zspill, clients);
10786 dns_resolver_getfetchesperzone(dns_resolver_t *resolver) {
10787 REQUIRE(VALID_RESOLVER(resolver));
10789 return atomic_load_relaxed(&resolver->zspill);
10793 dns_resolver_getzeronosoattl(dns_resolver_t *resolver) {
10794 REQUIRE(VALID_RESOLVER(resolver));
10796 return resolver->zero_no_soa_ttl;
10800 dns_resolver_setzeronosoattl(dns_resolver_t *resolver, bool state) {
10801 REQUIRE(VALID_RESOLVER(resolver));
10803 resolver->zero_no_soa_ttl = state;
10807 dns_resolver_getoptions(dns_resolver_t *resolver) {
10808 REQUIRE(VALID_RESOLVER(resolver));
10810 return resolver->options;
10814 dns_resolver_gettimeout(dns_resolver_t *resolver) {
10815 REQUIRE(VALID_RESOLVER(resolver));
10817 return resolver->query_timeout;
10821 dns_resolver_settimeout(dns_resolver_t *resolver, unsigned int timeout) {
10822 REQUIRE(VALID_RESOLVER(resolver));
10838 resolver->query_timeout = timeout;
10842 dns_resolver_setmaxvalidations(dns_resolver_t *resolver, uint32_t max) {
10843 REQUIRE(VALID_RESOLVER(resolver));
10844 atomic_store(&resolver->maxvalidations, max);
10848 dns_resolver_setmaxvalidationfails(dns_resolver_t *resolver, uint32_t max) {
10849 REQUIRE(VALID_RESOLVER(resolver));
10850 atomic_store(&resolver->maxvalidationfails, max);
10854 dns_resolver_setmaxdepth(dns_resolver_t *resolver, unsigned int maxdepth) {
10855 REQUIRE(VALID_RESOLVER(resolver));
10856 resolver->maxdepth = maxdepth;
10860 dns_resolver_getmaxdepth(dns_resolver_t *resolver) {
10861 REQUIRE(VALID_RESOLVER(resolver));
10862 return resolver->maxdepth;
10866 dns_resolver_setmaxqueries(dns_resolver_t *resolver, unsigned int queries) {
10867 REQUIRE(VALID_RESOLVER(resolver));
10868 resolver->maxqueries = queries;
10872 dns_resolver_getmaxqueries(dns_resolver_t *resolver) {
10873 REQUIRE(VALID_RESOLVER(resolver));
10874 return resolver->maxqueries;
10963 dns_resolver_setquotaresponse(dns_resolver_t *resolver, dns_quotatype_t which,
10965 REQUIRE(VALID_RESOLVER(resolver));
10969 resolver->quotaresp[which] = resp;
10973 dns_resolver_getquotaresponse(dns_resolver_t *resolver, dns_quotatype_t which) {
10974 REQUIRE(VALID_RESOLVER(resolver));
10977 return resolver->quotaresp[which];