Lines Matching defs:rctx
137 client_resfind(resctx_t *rctx, dns_fetchresponse_t *event);
435 resctx_t *rctx = resp->arg;
437 REQUIRE(RCTX_VALID(rctx));
439 client_resfind(rctx, resp);
443 start_fetch(resctx_t *rctx) {
447 REQUIRE(rctx->fetch == NULL);
449 if (!rctx->want_cdflag) {
452 if (!rctx->want_validation) {
455 if (rctx->want_tcp) {
460 rctx->view->resolver, dns_fixedname_name(&rctx->name),
461 rctx->type, NULL, NULL, NULL, NULL, 0, fopts, 0, NULL,
462 rctx->client->loop, fetch_done, rctx, rctx->rdataset,
463 rctx->sigrdataset, &rctx->fetch);
469 view_find(resctx_t *rctx, dns_db_t **dbp, dns_dbnode_t **nodep,
472 dns_name_t *name = dns_fixedname_name(&rctx->name);
475 if (rctx->type == dns_rdatatype_rrsig) {
478 type = rctx->type;
481 result = dns_view_find(rctx->view, name, type, 0, 0, false, false, dbp,
482 nodep, foundname, rctx->rdataset,
483 rctx->sigrdataset);
489 client_resfind(resctx_t *rctx, dns_fetchresponse_t *resp) {
505 REQUIRE(RCTX_VALID(rctx));
507 mctx = rctx->view->mctx;
509 name = dns_fixedname_name(&rctx->name);
517 rctx->restarts++;
522 INSIST(!dns_rdataset_isassociated(rctx->rdataset));
523 INSIST(rctx->sigrdataset == NULL ||
524 !dns_rdataset_isassociated(rctx->sigrdataset));
525 result = view_find(rctx, &db, &node, fname);
538 result = start_fetch(rctx);
540 putrdataset(mctx, &rctx->rdataset);
541 if (rctx->sigrdataset != NULL) {
543 &rctx->sigrdataset);
551 INSIST(resp->fetch == rctx->fetch);
552 dns_resolver_destroyfetch(&rctx->fetch);
558 INSIST(resp->rdataset == rctx->rdataset);
559 INSIST(resp->sigrdataset == rctx->sigrdataset);
567 dns_name_t *aname = dns_fixedname_name(&rctx->name);
585 trdataset = rctx->rdataset;
586 ISC_LIST_APPEND(ansname->list, rctx->rdataset, link);
587 rctx->rdataset = NULL;
588 if (rctx->sigrdataset != NULL) {
590 rctx->sigrdataset, link);
591 rctx->sigrdataset = NULL;
593 ISC_LIST_APPEND(rctx->namelist, ansname, link);
618 trdataset = rctx->rdataset;
619 ISC_LIST_APPEND(ansname->list, rctx->rdataset, link);
620 rctx->rdataset = NULL;
621 if (rctx->sigrdataset != NULL) {
623 rctx->sigrdataset, link);
624 rctx->sigrdataset = NULL;
626 ISC_LIST_APPEND(rctx->namelist, ansname, link);
663 ISC_LIST_APPEND(ansname->list, rctx->rdataset, link);
664 ISC_LIST_APPEND(rctx->namelist, ansname, link);
666 rctx->rdataset = NULL;
668 if (rctx->sigrdataset != NULL) {
669 putrdataset(mctx, &rctx->sigrdataset);
674 if (rctx->rdataset != NULL) {
675 putrdataset(mctx, &rctx->rdataset);
677 if (rctx->sigrdataset != NULL) {
678 putrdataset(mctx, &rctx->sigrdataset);
684 if (rctx->type == dns_rdatatype_any) {
698 rctx->rdataset);
699 if (rctx->rdataset->type != 0) {
701 rctx->rdataset, link);
703 rctx->rdataset = NULL;
710 rctx->rdataset);
715 rctx->rdataset == NULL)
718 &rctx->rdataset);
726 if (rctx->rdataset != NULL) {
727 putrdataset(mctx, &rctx->rdataset);
729 if (rctx->sigrdataset != NULL) {
730 putrdataset(mctx, &rctx->sigrdataset);
741 ISC_LIST_APPEND(rctx->namelist, ansname, link);
756 ISC_LIST_APPEND(ansname->list, rctx->rdataset, link);
757 rctx->rdataset = NULL;
758 if (rctx->sigrdataset != NULL) {
760 rctx->sigrdataset, link);
761 rctx->sigrdataset = NULL;
763 ISC_LIST_APPEND(rctx->namelist, ansname, link);
795 rctx->restarts == rctx->client->max_restarts)
806 INSIST(rctx->rdataset == NULL &&
807 rctx->sigrdataset == NULL);
809 result = getrdataset(mctx, &rctx->rdataset);
810 if (result == ISC_R_SUCCESS && rctx->want_dnssec) {
811 result = getrdataset(mctx, &rctx->sigrdataset);
813 putrdataset(mctx, &rctx->rdataset);
825 while ((name = ISC_LIST_HEAD(rctx->namelist)) != NULL) {
826 ISC_LIST_UNLINK(rctx->namelist, name, link);
827 ISC_LIST_APPEND(rctx->rev->answerlist, name, link);
830 rctx->rev->result = result;
831 rctx->rev->vresult = vresult;
832 isc_async_run(rctx->client->loop, rctx->rev->cb, rctx->rev);
878 resctx_t *rctx = NULL;
905 rctx = isc_mem_get(mctx, sizeof(*rctx));
906 *rctx = (resctx_t){
922 rctx->rdataset = rdataset;
930 rctx->sigrdataset = sigrdataset;
932 dns_fixedname_init(&rctx->name);
933 dns_name_copy(name, dns_fixedname_name(&rctx->name));
935 dns_view_attach(client->view, &rctx->view);
937 rctx->magic = RCTX_MAGIC;
940 ISC_LIST_APPEND(client->resctxs, rctx, link);
942 *transp = (dns_clientrestrans_t *)rctx;
943 client_resfind(rctx, NULL);
954 isc_mem_put(mctx, rctx, sizeof(*rctx));
1021 resctx_t *rctx = NULL;
1027 rctx = (resctx_t *)*transp;
1030 REQUIRE(RCTX_VALID(rctx));
1031 REQUIRE(rctx->fetch == NULL);
1033 client = rctx->client;
1038 dns_view_detach(&rctx->view);
1040 INSIST(ISC_LINK_LINKED(rctx, link));
1041 ISC_LIST_UNLINK(client->resctxs, rctx, link);
1043 INSIST(ISC_LIST_EMPTY(rctx->namelist));
1045 rctx->magic = 0;
1047 isc_mem_put(mctx, rctx, sizeof(*rctx));