Lines Matching defs:trans

127 static isc_result_t probe_domain(struct probe_trans *trans);
128 static void reset_probe(struct probe_trans *trans);
129 static isc_result_t fetch_nsaddress(struct probe_trans *trans);
130 static isc_result_t probe_name(struct probe_trans *trans,
294 update_stat(struct probe_trans *trans) {
305 for (pns = ISC_LIST_HEAD(trans->nslist); pns != NULL;
382 printf(") for %s:%s\n", trans->domain,
391 printf("%s:ignore\n", trans->domain);
397 printf("%s:nxdomain\n", trans->domain);
403 printf("%s:othererr\n", trans->domain);
409 printf("%s:multiplesoa\n", trans->domain);
415 printf("%s:multiplecname\n", trans->domain);
421 printf("%s:brokenanswer\n", trans->domain);
427 printf("%s:lame\n", trans->domain);
441 printf("%s:valid\n", trans->domain);
451 printf("%s:unknown\n", trans->domain);
461 set_nextqname(struct probe_trans *trans) {
467 if (*trans->qlabel == NULL)
470 result = isc_string_copy(buf, sizeof(buf), *trans->qlabel);
473 result = isc_string_append(buf, sizeof(buf), trans->domain);
480 dns_fixedname_init(&trans->fixedname);
481 trans->qname = dns_fixedname_name(&trans->fixedname);
482 result = dns_name_fromtext(trans->qname, &b, dns_rootname,
485 trans->qlabel++;
492 struct probe_trans *trans = event->ev_arg;
504 REQUIRE(trans != NULL && trans->inuse == ISC_TRUE);
506 REQUIRE(rmessage == trans->rmessage);
509 server = trans->current_ns->current_server;
631 rev->result, trans->domain);
640 trans->qname_found = ISC_TRUE;
642 dns_client_destroyreqtrans(&trans->reqid);
644 dns_message_reset(trans->rmessage, DNS_MESSAGE_INTENTPARSE);
646 result = probe_name(trans, type);
649 if (type == dns_rdatatype_a && trans->qname_found) {
654 trans->current_ns = ISC_LIST_HEAD(trans->nslist);
655 probe_name(trans, dns_rdatatype_aaaa);
662 dns_fixedname_invalidate(&trans->fixedname);
663 trans->qname = NULL;
664 result = set_nextqname(trans);
666 trans->current_ns =
667 ISC_LIST_HEAD(trans->nslist);
668 for (pns = trans->current_ns; pns != NULL;
679 result = probe_name(trans, dns_rdatatype_a);
688 reset_probe(trans);
691 reset_probe(trans); /* XXX */
695 probe_name(struct probe_trans *trans, dns_rdatatype_t type) {
700 REQUIRE(trans->reqid == NULL);
703 for (pns = trans->current_ns; pns != NULL;
718 trans->current_ns = pns;
723 dns_message_reset(trans->qmessage, DNS_MESSAGE_INTENTRENDER);
724 result = make_querymessage(trans->qmessage, trans->qname, type);
727 result = dns_client_startrequest(client, trans->qmessage,
728 trans->rmessage,
732 probe_task, request_done, trans,
733 &trans->reqid);
744 struct probe_trans *trans = event->ev_arg;
749 struct probe_ns *pns = trans->current_ns;
753 REQUIRE(trans->inuse == ISC_TRUE);
799 dns_client_destroyrestrans(&trans->resid);
803 trans->current_ns = ISC_LIST_NEXT(pns, link);
804 if (trans->current_ns == NULL) {
805 trans->current_ns = ISC_LIST_HEAD(trans->nslist);
806 dns_fixedname_invalidate(&trans->fixedname);
807 trans->qname = NULL;
808 result = set_nextqname(trans);
810 result = probe_name(trans, dns_rdatatype_a);
812 result = fetch_nsaddress(trans);
818 reset_probe(trans);
822 fetch_nsaddress(struct probe_trans *trans) {
825 pns = trans->current_ns;
830 resolve_nsaddress, trans,
831 &trans->resid));
839 reset_probe(struct probe_trans *trans) {
844 REQUIRE(trans->resid == NULL);
845 REQUIRE(trans->reqid == NULL);
847 update_stat(trans);
849 dns_message_reset(trans->qmessage, DNS_MESSAGE_INTENTRENDER);
850 dns_message_reset(trans->rmessage, DNS_MESSAGE_INTENTPARSE);
852 trans->inuse = ISC_FALSE;
853 if (trans->domain != NULL)
854 isc_mem_free(mctx, trans->domain);
855 trans->domain = NULL;
856 if (trans->qname != NULL)
857 dns_fixedname_invalidate(&trans->fixedname);
858 trans->qname = NULL;
859 trans->qlabel = qlabels;
860 trans->qname_found = ISC_FALSE;
861 trans->current_ns = NULL;
863 while ((pns = ISC_LIST_HEAD(trans->nslist)) != NULL) {
864 ISC_LIST_UNLINK(trans->nslist, pns, link);
874 result = probe_domain(trans);
881 struct probe_trans *trans = event->ev_arg;
890 REQUIRE(trans->inuse == ISC_TRUE);
933 ISC_LIST_APPEND(trans->nslist, pns, link);
945 dns_client_destroyrestrans(&trans->resid);
948 if (!ISC_LIST_EMPTY(trans->nslist)) {
950 trans->current_ns = ISC_LIST_HEAD(trans->nslist);
951 result = fetch_nsaddress(trans);
958 reset_probe(trans);
962 probe_domain(struct probe_trans *trans) {
969 REQUIRE(trans != NULL);
970 REQUIRE(trans->inuse == ISC_FALSE);
979 trans->domain = isc_mem_strdup(mctx, buf);
980 if (trans->domain == NULL) {
990 dns_fixedname_init(&trans->fixedname);
991 trans->qname = dns_fixedname_name(&trans->fixedname);
992 result = dns_name_fromtext(trans->qname, &b, dns_rootname, 0, NULL);
995 result = dns_client_startresolve(client, trans->qname,
997 0, probe_task, resolve_ns, trans,
998 &trans->resid);
1002 trans->inuse = ISC_TRUE;
1008 isc_mem_free(mctx, trans->domain);
1009 dns_fixedname_invalidate(&trans->fixedname);