Lines Matching refs:res

72 				      "res %p: %s", res, (m))
77 "res %p: %s", (r), (m))
208 dns_resolver_t * res;
394 (((fctx)->res->lame_ttl > 30 ) ? (fctx)->res->lame_ttl : 30)
456 #define VALID_RESOLVER(res) ISC_MAGIC_VALID(res, RES_MAGIC)
475 static void destroy(dns_resolver_t *res);
476 static void empty_bucket(dns_resolver_t *res);
504 inc_stats(dns_resolver_t *res, isc_statscounter_t counter) {
505 if (res->view->resstats != NULL)
506 isc_stats_increment(res->view->resstats, counter);
531 result = dns_validator_create(fctx->res->view, name, type, rdataset,
536 inc_stats(fctx->res, dns_resstatscounter_val);
790 dns_resolver_t *res = query->fctx->res;
792 empty_bucket(res);
835 inc_stats(fctx->res,
838 inc_stats(fctx->res,
841 inc_stats(fctx->res,
844 inc_stats(fctx->res,
847 inc_stats(fctx->res,
850 inc_stats(fctx->res,
1118 (count < fctx->res->spillatmax || fctx->res->spillatmax == 0)) {
1119 LOCK(&fctx->res->lock);
1120 if (count == fctx->res->spillat && !fctx->res->exiting) {
1121 old_spillat = fctx->res->spillat;
1122 fctx->res->spillat += 5;
1123 if (fctx->res->spillat > fctx->res->spillatmax &&
1124 fctx->res->spillatmax != 0)
1125 fctx->res->spillat = fctx->res->spillatmax;
1126 new_spillat = fctx->res->spillat;
1131 result = isc_timer_reset(fctx->res->spillattimer,
1136 UNLOCK(&fctx->res->lock);
1167 dns_resolver_t *res;
1174 res = fctx->res;
1188 LOCK(&res->buckets[fctx->bucketnum].lock);
1194 UNLOCK(&res->buckets[fctx->bucketnum].lock);
1361 dns_resolver_t *res;
1371 res = fctx->res;
1372 task = res->buckets[fctx->bucketnum].task;
1414 query->dispatchmgr = res->dispatchmgr;
1418 if (res->view->peers != NULL) {
1422 result = dns_peerlist_peerbyaddr(res->view->peers,
1439 res->dispatches4->dispatches[0],
1444 res->dispatches6->dispatches[0],
1456 result = isc_socket_create(res->socketmgr, pf,
1490 result = dns_dispatch_getudp(res->dispatchmgr,
1491 res->socketmgr,
1492 res->taskmgr, &addr,
1502 dns_resolver_dispatchv4(res),
1504 query->exclusivesocket = res->exclusivev4;
1508 dns_resolver_dispatchv6(res),
1510 query->exclusivesocket = res->exclusivev6;
1559 inc_stats(res, dns_resstatscounter_queryv4);
1561 inc_stats(res, dns_resstatscounter_queryv6);
1562 if (res->view->resquerystats != NULL)
1563 dns_rdatatypestats_increment(res->view->resquerystats,
1681 dns_resolver_t *res;
1701 res = fctx->res;
1702 task = res->buckets[fctx->bucketnum].task;
1736 res->socketmgr);
1748 dns_rdataset_makequestion(qrdataset, res->rdclass, fctx->type);
1768 } else if (res->view->enablevalidation) {
1769 result = dns_view_issecuredomain(res->view, &fctx->name,
1773 if (res->view->dlv != NULL)
1787 result = dns_compress_init(&cctx, -1, fctx->res->mctx);
1804 (void) dns_peerlist_peerbyaddr(fctx->res->view->peers, &ipaddr, &peer);
1863 isc_uint16_t udpsize = res->udpsize;
1864 isc_boolean_t reqnsid = res->view->requestnsid;
1931 result = dns_view_getpeertsig(fctx->res->view, &ipaddr, &tsigkey);
1958 fctx->res->mctx,
2118 query->fctx->res->taskmgr,
2179 dns_resolver_t *res;
2189 res = fctx->res;
2196 LOCK(&res->buckets[bucketnum].lock);
2229 UNLOCK(&res->buckets[bucketnum].lock);
2241 empty_bucket(res);
2394 dns_rdataclass_format(fctx->res->rdclass, classbuf, sizeof(classbuf));
2471 dns_resolver_t *res;
2475 res = fctx->res;
2494 res->buckets[fctx->bucketnum].task,
2498 res->view->dstport,
2544 ((res->dispatches4 == NULL &&
2546 (res->dispatches6 == NULL &&
2561 ((res->dispatches4 == NULL &&
2563 (res->dispatches6 == NULL &&
2585 dns_resolver_t *res;
2605 res = fctx->res;
2607 if (fctx->depth > res->maxdepth) {
2647 result = dns_fwdtable_find2(fctx->res->view->fwdtable, name,
2666 fctx->res->dispatches4 == NULL) ||
2668 fctx->res->dispatches6 == NULL)) {
2716 if (res->dispatches4 != NULL)
2718 if (res->dispatches6 != NULL)
2751 family = (res->dispatches6 != NULL) ? AF_INET6 : AF_INET;
2752 for (a = ISC_LIST_HEAD(fctx->res->alternates);
2817 dns_resolver_addbadcache(fctx->res,
2846 dns_resolver_t *res;
2851 res = fctx->res;
2853 blackhole = dns_dispatchmgr_getblackhole(res->dispatchmgr);
2854 (void) dns_peerlist_peerbyaddr(res->view->peers, &ipaddr, &peer);
2860 &res->view->aclenv,
3094 inc_stats(fctx->res, dns_resstatscounter_retry);
3099 dns_resolver_t *res;
3119 res = fctx->res;
3122 ISC_LIST_UNLINK(res->buckets[bucketnum].fctxs, fctx, link);
3124 LOCK(&res->nlock);
3125 res->nfctx--;
3126 UNLOCK(&res->nlock);
3128 if (res->buckets[bucketnum].exiting &&
3129 ISC_LIST_EMPTY(res->buckets[bucketnum].fctxs))
3218 inc_stats(fctx->res, dns_resstatscounter_querytimeout);
3287 isc_task_send(fctx->res->buckets[fctx->bucketnum].task,
3296 dns_resolver_t *res;
3305 res = fctx->res;
3335 LOCK(&res->buckets[bucketnum].lock);
3354 UNLOCK(&res->buckets[bucketnum].lock);
3359 empty_bucket(res);
3367 dns_resolver_t *res;
3375 res = fctx->res;
3380 LOCK(&res->buckets[bucketnum].lock);
3421 UNLOCK(&res->buckets[bucketnum].lock);
3439 empty_bucket(res);
3466 isc_event_allocate(fctx->res->mctx, clone, DNS_EVENT_FETCHDONE,
3516 fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type,
3537 mctx = res->buckets[bucketnum].mctx;
3565 fctx->res = res;
3638 result = dns_fwdtable_find2(fctx->res->view->fwdtable, fwdname,
3651 result = dns_view_findzonecut(res->view, fwdname,
3704 isc_interval_set(&interval, res->query_timeout, 0);
3726 iresult = isc_timer_create(res->timermgr, isc_timertype_inactive,
3728 res->buckets[bucketnum].task, fctx_timeout,
3742 dns_db_attach(res->view->cachedb, &fctx->cache);
3744 dns_adb_attach(res->view->adb, &fctx->adb);
3752 ISC_LIST_APPEND(res->buckets[bucketnum].fctxs, fctx, link);
3754 LOCK(&res->nlock);
3755 res->nfctx++;
3756 UNLOCK(&res->nlock);
3904 fctx->res->rdclass != rdataset->rdclass ||
3989 dns_resolver_t *res = fctx->res;
3997 LOCK(&res->buckets[bucketnum].lock);
4013 UNLOCK(&res->buckets[bucketnum].lock);
4033 dns_resolver_t *res;
4050 res = fctx->res;
4060 LOCK(&res->buckets[fctx->bucketnum].lock);
4085 UNLOCK(&res->buckets[bucketnum].lock);
4087 empty_bucket(res);
4136 inc_stats(res, dns_resstatscounter_valfail);
4185 UNLOCK(&res->buckets[fctx->bucketnum].lock);
4204 dns_resolver_addbadcache(res, &fctx->name,
4217 inc_stats(res, dns_resstatscounter_valnegsuccess);
4234 ttl = res->view->maxncachettl;
4236 covers == dns_rdatatype_any && res->zero_no_soa_ttl)
4246 inc_stats(res, dns_resstatscounter_valsuccess);
4313 UNLOCK(&res->buckets[fctx->bucketnum].lock);
4315 empty_bucket(res);
4330 UNLOCK(&res->buckets[fctx->bucketnum].lock);
4413 UNLOCK(&res->buckets[fctx->bucketnum].lock);
4574 dns_resolver_t *res;
4587 res = fctx->res;
4593 task = res->buckets[fctx->bucketnum].task;
4598 if (res->view->enablevalidation) {
4599 result = dns_view_issecuredomain(res->view, name,
4604 if (!secure_domain && res->view->dlv != NULL) {
4660 fail = ISC_TF((fctx->res->options & DNS_RESOLVER_CHECKNAMESFAIL) != 0);
4693 if (rdataset->ttl > res->view->maxcachettl)
4694 rdataset->ttl = res->view->maxcachettl;
4987 LOCK(&fctx->res->buckets[fctx->bucketnum].lock);
5010 UNLOCK(&fctx->res->buckets[fctx->bucketnum].lock);
5077 dns_resolver_t *res;
5091 res = fctx->res;
5108 if (fctx->res->view->enablevalidation) {
5109 result = dns_view_issecuredomain(res->view, name,
5114 if (!secure_domain && res->view->dlv != NULL) {
5157 res->buckets[fctx->bucketnum].task);
5166 LOCK(&res->buckets[fctx->bucketnum].lock);
5195 ttl = fctx->res->view->maxncachettl;
5198 fctx->res->zero_no_soa_ttl)
5223 UNLOCK(&res->buckets[fctx->bucketnum].lock);
6058 view = fctx->res->view;
6550 dns_resolver_t *res;
6564 res = fctx->res;
6633 result = dns_resolver_createfetch(fctx->res, &fctx->nsname,
6642 LOCK(&res->buckets[bucketnum].lock);
6656 LOCK(&res->buckets[bucketnum].lock);
6658 UNLOCK(&res->buckets[bucketnum].lock);
6660 empty_bucket(res);
6837 query->fctx->res->mctx);
6879 inc_stats(fctx->res, dns_resstatscounter_responsev4);
6881 inc_stats(fctx->res, dns_resstatscounter_responsev6);
6893 if (fctx->res->exiting) {
6966 dns_message_setclass(message, fctx->res->rdclass);
6995 inc_stats(fctx->res,
7019 inc_stats(fctx->res,
7038 log_packet(message, ISC_LOG_DEBUG(10), fctx->res->mctx);
7040 if (message->rdclass != fctx->res->rdclass) {
7057 result = dns_message_checksig(message, fctx->res->view);
7100 inc_stats(fctx->res, dns_resstatscounter_truncated);
7127 inc_stats(fctx->res, dns_resstatscounter_nxdomain);
7130 inc_stats(fctx->res, dns_resstatscounter_servfail);
7133 inc_stats(fctx->res, dns_resstatscounter_formerr);
7136 inc_stats(fctx->res, dns_resstatscounter_othererror);
7168 inc_stats(fctx->res, dns_resstatscounter_edns0fail);
7242 if (fctx->res->lame_ttl != 0 && !ISFORWARDER(query->addrinfo) &&
7244 inc_stats(fctx->res, dns_resstatscounter_lame);
7248 now + fctx->res->lame_ttl);
7263 dns_view_isdelegationonly(fctx->res->view, &fctx->domain) &&
7275 dns_rdataclass_format(fctx->res->rdclass, classbuf,
7287 if ((fctx->res->options & DNS_RESOLVER_CHECKNAMES) != 0)
7499 result = dns_view_findzonecut(fctx->res->view,
7543 inc_stats(fctx->res, dns_resstatscounter_retry);
7573 result = dns_resolver_createfetch(fctx->res, &fctx->nsname,
7582 LOCK(&fctx->res->buckets[fctx->bucketnum].lock);
7584 UNLOCK(&fctx->res->buckets[fctx->bucketnum].lock);
7602 destroy_badcache(dns_resolver_t *res) {
7606 if (res->badcache != NULL) {
7607 for (i = 0; i < res->badhash; i++)
7608 for (bad = res->badcache[i]; bad != NULL;
7611 isc_mem_put(res->mctx, bad, sizeof(*bad) +
7613 res->badcount--;
7615 isc_mem_put(res->mctx, res->badcache,
7616 sizeof(*res->badcache) * res->badhash);
7617 res->badcache = NULL;
7618 res->badhash = 0;
7619 INSIST(res->badcount == 0);
7624 destroy(dns_resolver_t *res) {
7628 REQUIRE(res->references == 0);
7629 REQUIRE(!res->priming);
7630 REQUIRE(res->primefetch == NULL);
7634 INSIST(res->nfctx == 0);
7636 DESTROYLOCK(&res->primelock);
7637 DESTROYLOCK(&res->nlock);
7638 DESTROYLOCK(&res->lock);
7639 for (i = 0; i < res->nbuckets; i++) {
7640 INSIST(ISC_LIST_EMPTY(res->buckets[i].fctxs));
7641 isc_task_shutdown(res->buckets[i].task);
7642 isc_task_detach(&res->buckets[i].task);
7643 DESTROYLOCK(&res->buckets[i].lock);
7644 isc_mem_detach(&res->buckets[i].mctx);
7646 isc_mem_put(res->mctx, res->buckets,
7647 res->nbuckets * sizeof(fctxbucket_t));
7648 if (res->dispatches4 != NULL)
7649 dns_dispatchset_destroy(&res->dispatches4);
7650 if (res->dispatches6 != NULL)
7651 dns_dispatchset_destroy(&res->dispatches6);
7652 while ((a = ISC_LIST_HEAD(res->alternates)) != NULL) {
7653 ISC_LIST_UNLINK(res->alternates, a, link);
7655 dns_name_free(&a->_u._n.name, res->mctx);
7656 isc_mem_put(res->mctx, a, sizeof(*a));
7658 dns_resolver_reset_algorithms(res);
7659 destroy_badcache(res);
7660 dns_resolver_resetmustbesecure(res);
7662 isc_rwlock_destroy(&res->alglock);
7665 isc_rwlock_destroy(&res->mbslock);
7667 isc_timer_detach(&res->spillattimer);
7668 res->magic = 0;
7669 isc_mem_put(res->mctx, res, sizeof(*res));
7673 send_shutdown_events(dns_resolver_t *res) {
7681 for (event = ISC_LIST_HEAD(res->whenshutdown);
7685 ISC_LIST_UNLINK(res->whenshutdown, event, ev_link);
7687 event->ev_sender = res;
7693 empty_bucket(dns_resolver_t *res) {
7696 LOCK(&res->lock);
7698 INSIST(res->activebuckets > 0);
7699 res->activebuckets--;
7700 if (res->activebuckets == 0)
7701 send_shutdown_events(res);
7703 UNLOCK(&res->lock);
7708 dns_resolver_t *res = event->ev_arg;
7713 REQUIRE(VALID_RESOLVER(res));
7717 LOCK(&res->lock);
7718 INSIST(!res->exiting);
7719 if (res->spillat > res->spillatmin) {
7720 res->spillat--;
7723 if (res->spillat <= res->spillatmin) {
7724 result = isc_timer_reset(res->spillattimer,
7729 count = res->spillat;
7730 UNLOCK(&res->lock);
7751 dns_resolver_t *res;
7769 res = isc_mem_get(view->mctx, sizeof(*res));
7770 if (res == NULL)
7773 res->mctx = view->mctx;
7774 res->rdclass = view->rdclass;
7775 res->socketmgr = socketmgr;
7776 res->timermgr = timermgr;
7777 res->taskmgr = taskmgr;
7778 res->dispatchmgr = dispatchmgr;
7779 res->view = view;
7780 res->options = options;
7781 res->lame_ttl = 0;
7782 ISC_LIST_INIT(res->alternates);
7783 res->udpsize = RECV_BUFFER_SIZE;
7784 res->algorithms = NULL;
7785 res->badcache = NULL;
7786 res->badcount = 0;
7787 res->badhash = 0;
7788 res->badsweep = 0;
7789 res->mustbesecure = NULL;
7790 res->spillatmin = res->spillat = 10;
7791 res->spillatmax = 100;
7792 res->spillattimer = NULL;
7793 res->zero_no_soa_ttl = ISC_FALSE;
7794 res->query_timeout = DEFAULT_QUERY_TIMEOUT;
7795 res->maxdepth = DEFAULT_RECURSION_DEPTH;
7796 res->nbuckets = ntasks;
7797 res->activebuckets = ntasks;
7798 res->buckets = isc_mem_get(view->mctx,
7800 if (res->buckets == NULL) {
7805 result = isc_mutex_init(&res->buckets[i].lock);
7808 res->buckets[i].task = NULL;
7809 result = isc_task_create(taskmgr, 0, &res->buckets[i].task);
7811 DESTROYLOCK(&res->buckets[i].lock);
7814 res->buckets[i].mctx = NULL;
7815 snprintf(name, sizeof(name), "res%u", i);
7822 result = isc_mem_create(0, 0, &res->buckets[i].mctx);
7824 isc_task_detach(&res->buckets[i].task);
7825 DESTROYLOCK(&res->buckets[i].lock);
7828 isc_mem_setname(res->buckets[i].mctx, name, NULL);
7830 isc_mem_attach(view->mctx, &res->buckets[i].mctx);
7832 isc_task_setname(res->buckets[i].task, name, res);
7833 ISC_LIST_INIT(res->buckets[i].fctxs);
7834 res->buckets[i].exiting = ISC_FALSE;
7838 res->dispatches4 = NULL;
7841 dispatchv4, &res->dispatches4, ndisp);
7843 res->exclusivev4 =
7847 res->dispatches6 = NULL;
7850 dispatchv6, &res->dispatches6, ndisp);
7852 res->exclusivev6 =
7856 res->references = 1;
7857 res->exiting = ISC_FALSE;
7858 res->frozen = ISC_FALSE;
7859 ISC_LIST_INIT(res->whenshutdown);
7860 res->priming = ISC_FALSE;
7861 res->primefetch = NULL;
7862 res->nfctx = 0;
7864 result = isc_mutex_init(&res->lock);
7868 result = isc_mutex_init(&res->nlock);
7872 result = isc_mutex_init(&res->primelock);
7882 task, spillattimer_countdown, res,
7883 &res->spillattimer);
7889 result = isc_rwlock_init(&res->alglock, 0, 0);
7894 result = isc_rwlock_init(&res->mbslock, 0, 0);
7899 res->magic = RES_MAGIC;
7901 *resp = res;
7908 isc_rwlock_destroy(&res->alglock);
7913 isc_timer_detach(&res->spillattimer);
7917 DESTROYLOCK(&res->primelock);
7920 DESTROYLOCK(&res->nlock);
7923 DESTROYLOCK(&res->lock);
7926 if (res->dispatches6 != NULL)
7927 dns_dispatchset_destroy(&res->dispatches6);
7928 if (res->dispatches4 != NULL)
7929 dns_dispatchset_destroy(&res->dispatches4);
7933 isc_mem_detach(&res->buckets[i].mctx);
7934 DESTROYLOCK(&res->buckets[i].lock);
7935 isc_task_shutdown(res->buckets[i].task);
7936 isc_task_detach(&res->buckets[i].task);
7938 isc_mem_put(view->mctx, res->buckets,
7939 res->nbuckets * sizeof(fctxbucket_t));
7942 isc_mem_put(view->mctx, res, sizeof(*res));
7950 dns_resolver_t *res;
7957 res = event->ev_arg;
7958 REQUIRE(VALID_RESOLVER(res));
7962 LOCK(&res->lock);
7964 INSIST(res->priming);
7965 res->priming = ISC_FALSE;
7966 LOCK(&res->primelock);
7967 fetch = res->primefetch;
7968 res->primefetch = NULL;
7969 UNLOCK(&res->primelock);
7971 UNLOCK(&res->lock);
7974 res->view->cache != NULL && res->view->hints != NULL) {
7975 dns_cache_attachdb(res->view->cache, &db);
7976 dns_root_checkhints(res->view, res->view->hints, db);
7988 isc_mem_put(res->mctx, fevent->rdataset, sizeof(*fevent->rdataset));
7995 dns_resolver_prime(dns_resolver_t *res) {
8000 REQUIRE(VALID_RESOLVER(res));
8001 REQUIRE(res->frozen);
8005 LOCK(&res->lock);
8007 if (!res->exiting && !res->priming) {
8008 INSIST(res->primefetch == NULL);
8009 res->priming = ISC_TRUE;
8013 UNLOCK(&res->lock);
8020 * because we're the ones who set res->priming to true.
8022 * running will see that res->priming is already true and
8026 rdataset = isc_mem_get(res->mctx, sizeof(*rdataset));
8028 LOCK(&res->lock);
8029 INSIST(res->priming);
8030 INSIST(res->primefetch == NULL);
8031 res->priming = ISC_FALSE;
8032 UNLOCK(&res->lock);
8036 LOCK(&res->primelock);
8037 result = dns_resolver_createfetch(res, dns_rootname,
8040 res->buckets[0].task,
8042 res, rdataset, NULL,
8043 &res->primefetch);
8044 UNLOCK(&res->primelock);
8046 LOCK(&res->lock);
8047 INSIST(res->priming);
8048 res->priming = ISC_FALSE;
8049 UNLOCK(&res->lock);
8056 dns_resolver_freeze(dns_resolver_t *res) {
8061 REQUIRE(VALID_RESOLVER(res));
8063 res->frozen = ISC_TRUE;
8084 dns_resolver_whenshutdown(dns_resolver_t *res, isc_task_t *task,
8090 REQUIRE(VALID_RESOLVER(res));
8096 LOCK(&res->lock);
8098 if (res->exiting && res->activebuckets == 0) {
8102 event->ev_sender = res;
8108 ISC_LIST_APPEND(res->whenshutdown, event, ev_link);
8111 UNLOCK(&res->lock);
8115 dns_resolver_shutdown(dns_resolver_t *res) {
8120 REQUIRE(VALID_RESOLVER(res));
8124 LOCK(&res->lock);
8126 if (!res->exiting) {
8128 res->exiting = ISC_TRUE;
8130 for (i = 0; i < res->nbuckets; i++) {
8131 LOCK(&res->buckets[i].lock);
8132 for (fctx = ISC_LIST_HEAD(res->buckets[i].fctxs);
8136 if (res->dispatches4 != NULL && !res->exclusivev4) {
8137 dns_dispatchset_cancelall(res->dispatches4,
8138 res->buckets[i].task);
8140 if (res->dispatches6 != NULL && !res->exclusivev6) {
8141 dns_dispatchset_cancelall(res->dispatches6,
8142 res->buckets[i].task);
8144 res->buckets[i].exiting = ISC_TRUE;
8145 if (ISC_LIST_EMPTY(res->buckets[i].fctxs)) {
8146 INSIST(res->activebuckets > 0);
8147 res->activebuckets--;
8149 UNLOCK(&res->buckets[i].lock);
8151 if (res->activebuckets == 0)
8152 send_shutdown_events(res);
8153 result = isc_timer_reset(res->spillattimer,
8159 UNLOCK(&res->lock);
8164 dns_resolver_t *res;
8168 res = *resp;
8169 REQUIRE(VALID_RESOLVER(res));
8173 LOCK(&res->lock);
8175 INSIST(res->references > 0);
8176 res->references--;
8177 if (res->references == 0) {
8178 INSIST(res->exiting && res->activebuckets == 0);
8182 UNLOCK(&res->lock);
8185 destroy(res);
8224 dns_resolver_createfetch(dns_resolver_t *res, dns_name_t *name,
8234 return (dns_resolver_createfetch3(res, name, type, domain,
8241 dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name,
8252 return (dns_resolver_createfetch3(res, name, type, domain,
8259 dns_resolver_createfetch3(dns_resolver_t *res, dns_name_t *name,
8284 REQUIRE(VALID_RESOLVER(res));
8285 REQUIRE(res->frozen);
8303 fetch = isc_mem_get(res->mctx, sizeof(*fetch));
8307 bucketnum = dns_name_fullhash(name, ISC_FALSE) % res->nbuckets;
8309 LOCK(&res->lock);
8310 spillat = res->spillat;
8311 spillatmin = res->spillatmin;
8312 UNLOCK(&res->lock);
8313 LOCK(&res->buckets[bucketnum].lock);
8315 if (res->buckets[bucketnum].exiting) {
8321 for (fctx = ISC_LIST_HEAD(res->buckets[bucketnum].fctxs);
8356 result = fctx_create(res, name, type, domain, nameservers,
8376 isc_task_send(res->buckets[bucketnum].task, &event);
8388 UNLOCK(&res->buckets[bucketnum].lock);
8397 isc_mem_put(res->mctx, fetch, sizeof(*fetch));
8405 dns_resolver_t *res;
8412 res = fctx->res;
8416 LOCK(&res->buckets[fctx->bucketnum].lock);
8446 UNLOCK(&res->buckets[fctx->bucketnum].lock);
8452 dns_resolver_t *res;
8463 res = fctx->res;
8468 LOCK(&res->buckets[bucketnum].lock);
8486 UNLOCK(&res->buckets[bucketnum].lock);
8488 isc_mem_put(res->mctx, fetch, sizeof(*fetch));
8492 empty_bucket(res);
8501 dns_resolver_t *res;
8507 res = fctx->res;
8509 LOCK(&res->buckets[fctx->bucketnum].lock);
8533 UNLOCK(&res->buckets[fctx->bucketnum].lock);