Lines Matching defs:stub
685 struct iter_hints_stub* stub;
687 /* do not process a last resort (the parent side) if a stub
690 if(!dname_is_root(nm) && (stub = (struct iter_hints_stub*)
694 stub->dp->has_parent_side_NS) {
695 if(retdp) *retdp = stub->dp;
922 * Generate and process a stub priming request. This method tests for the
923 * need to prime a stub zone, so it is safe to call for every request.
931 * issue a priming request if it detects an unprimed stub.
932 * Uses value of 2 to signal during stub-prime in root-prime situation
933 * that a noprime-stub is available and resolution can continue.
939 /* Lookup the stub hint. This will return null if the stub doesn't
941 struct iter_hints_stub* stub;
946 stub = hints_lookup_stub(qstate->env->hints, qname, qclass, iq->dp);
947 /* The stub (if there is one) does not need priming. */
948 if(!stub)
950 stub_dp = stub->dp;
951 /* if we have an auth_zone dp, and stub is equal, don't prime stub
957 /* is it a noprime stub (always use) */
958 if(stub->noprime) {
965 log_err("out of memory priming stub");
966 errinf(qstate, "malloc failure, priming stub");
970 log_nametypeclass(VERB_DETAIL, "use stub", stub_dp->name,
975 /* Otherwise, we need to (re)prime the stub. */
976 log_nametypeclass(VERB_DETAIL, "priming stub", stub_dp->name,
984 verbose(VERB_ALGO, "could not prime stub");
985 errinf(qstate, "could not generate lookup for stub prime");
994 /* make copy to avoid use of stub dp by different qs/threads */
997 log_err("out of memory priming stub, copydp");
1001 errinf(qstate, "malloc failure, in stub prime");
1006 * wouldn't be anyway, since stub hints never have
1210 /* make copy to avoid use of stub dp by different qs/threads */
1277 /* make copy to avoid use of stub dp by different qs/threads */
1377 * If we are restricted by a forward-zone or a stub-zone, we
1523 * the iterator pass would have primed the stub and
1593 /* if there is a stub, then no root prime needed */
1597 break; /* got noprime-stub-zone, continue */
1599 return 0; /* stub prime request made */
1655 verbose(VERB_QUERY, "cache has stub "
1662 "stub/fwd fallback");
1725 * This part is primarily handling stub zone priming. Events that reach this
1746 struct iter_hints_stub* stub;
1752 /* Do not send queries above stub, do not set delname to dp if
1753 * this is above stub without stub-first. */
1754 stub = hints_lookup_stub(
1757 if(!stub || !stub->dp->has_parent_side_NS ||
1758 dname_subdomain_c(iq->dp->name, stub->dp->name)) {
1774 /* Check to see if we need to prime a stub zone. */
1786 * as a separate state so that queries that generate stub priming events
1787 * will get the tail end of the init process but not repeat the stub priming
2068 errinf(qstate, "all the configured stub or forward servers failed,");
2071 verbose(VERB_QUERY, "configured stub or forward servers failed -- returning SERVFAIL");
2163 * delegation point is a stub and we cannot go higher, skip*/
2169 "because it is also a stub/forward,",
3522 /* root priming responses go to init stage 2, priming stub
3533 * root and stub priming responses. This is basically the equivalent of the
3562 /* validate the root or stub after priming (if enabled).