]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Fixup for problems with do-ip6: no and only ipv6 addresses.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Mon, 17 Nov 2008 12:47:34 +0000 (12:47 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Mon, 17 Nov 2008 12:47:34 +0000 (12:47 +0000)
git-svn-id: file:///svn/unbound/trunk@1353 be551aaa-1e26-0410-a405-d3ace91eadb9

143 files changed:
doc/Changelog
doc/TODO
iterator/iter_delegpt.c
iterator/iter_delegpt.h
iterator/iter_fwd.c
iterator/iter_hints.c
iterator/iterator.c
services/cache/dns.c
testcode/fake_event.c
testcode/unitneg.c
testdata/dlv_anchor.rpl
testdata/dlv_below_ta.rpl
testdata/dlv_delegation.rpl
testdata/dlv_insecure.rpl
testdata/dlv_unused.rpl
testdata/fetch_glue.rpl
testdata/fetch_glue_cname.rpl
testdata/iter_cname_double.rpl
testdata/iter_cname_nx.rpl
testdata/iter_cname_qnamecopy.rpl
testdata/iter_cycle.rpl
testdata/iter_cycle_noh.rpl
testdata/iter_dnsseclame_ds.rpl
testdata/iter_dnsseclame_ds_ok.rpl
testdata/iter_dnsseclame_ta.rpl
testdata/iter_dnsseclame_ta_ok.rpl
testdata/iter_donotq127.rpl
testdata/iter_emptydp.rpl
testdata/iter_emptydp_for_glue.rpl
testdata/iter_got6only.rpl [new file with mode: 0644]
testdata/iter_lame_aaaa.rpl
testdata/iter_lame_noaa.rpl
testdata/iter_lamescrub.rpl
testdata/iter_ns_spoof.rpl
testdata/iter_primenoglue.rpl
testdata/iter_privaddr.rpl
testdata/iter_ranoaa_lame.rpl
testdata/iter_reclame_one.rpl
testdata/iter_reclame_two.rpl
testdata/iter_recurse.rpl
testdata/iter_req_qname.rpl
testdata/iter_resolve.rpl
testdata/iter_scrub_cname_an.rpl
testdata/iter_scrub_dname_insec.rpl
testdata/iter_scrub_dname_sec.rpl
testdata/nomem_cnametopos.rpl
testdata/trust_cname_chain.rpl
testdata/val_adbit.rpl
testdata/val_anchor_nx.rpl
testdata/val_anchor_nx_nosig.rpl
testdata/val_ans_dsent.rpl
testdata/val_ans_nx.rpl
testdata/val_any.rpl
testdata/val_any_dname.rpl
testdata/val_cname_loop1.rpl
testdata/val_cname_loop2.rpl
testdata/val_cname_loop3.rpl
testdata/val_cnamenx_dblnsec.rpl
testdata/val_cnamenx_rcodenx.rpl
testdata/val_cnameqtype.rpl
testdata/val_cnametodname.rpl
testdata/val_cnametodnametocnametopos.rpl
testdata/val_cnametonodata.rpl
testdata/val_cnametonx.rpl
testdata/val_cnametopos.rpl
testdata/val_cnametoposnowc.rpl
testdata/val_cnametoposwc.rpl
testdata/val_cnamewctonodata.rpl
testdata/val_cnamewctonx.rpl
testdata/val_cnamewctoposwc.rpl
testdata/val_dnametoolong.rpl
testdata/val_dnametopos.rpl
testdata/val_dnametoposwc.rpl
testdata/val_dnamewc.rpl
testdata/val_ds_sha2.rpl
testdata/val_ds_sha2_downgrade.rpl
testdata/val_entds.rpl
testdata/val_faildnskey.rpl
testdata/val_faildnskey_ok.rpl
testdata/val_mal_wc.rpl
testdata/val_noadwhennodo.rpl
testdata/val_nodata.rpl
testdata/val_nodata_ent.rpl
testdata/val_nodata_entwc.rpl
testdata/val_nodata_failsig.rpl
testdata/val_nodata_hasdata.rpl
testdata/val_nodata_zonecut.rpl
testdata/val_nodatawc.rpl
testdata/val_nodatawc_badce.rpl
testdata/val_nodatawc_nodeny.rpl
testdata/val_nodatawc_one.rpl
testdata/val_nokeyprime.rpl
testdata/val_nsec3_b1_nameerror.rpl
testdata/val_nsec3_b1_nameerror_noce.rpl
testdata/val_nsec3_b1_nameerror_nonc.rpl
testdata/val_nsec3_b1_nameerror_nowc.rpl
testdata/val_nsec3_b21_nodataent.rpl
testdata/val_nsec3_b21_nodataent_wr.rpl
testdata/val_nsec3_b2_nodata.rpl
testdata/val_nsec3_b2_nodata_nons.rpl
testdata/val_nsec3_b3_optout.rpl
testdata/val_nsec3_b3_optout_negcache.rpl
testdata/val_nsec3_b3_optout_noce.rpl
testdata/val_nsec3_b3_optout_nonc.rpl
testdata/val_nsec3_b4_wild.rpl
testdata/val_nsec3_b4_wild_wr.rpl
testdata/val_nsec3_b5_wcnodata.rpl
testdata/val_nsec3_b5_wcnodata_noce.rpl
testdata/val_nsec3_b5_wcnodata_nonc.rpl
testdata/val_nsec3_b5_wcnodata_nowc.rpl
testdata/val_nsec3_cname_ds.rpl
testdata/val_nsec3_cname_par.rpl
testdata/val_nsec3_cname_sub.rpl
testdata/val_nsec3_iter_high.rpl
testdata/val_nsec3_nodatawccname.rpl
testdata/val_nsec3_nods.rpl
testdata/val_nsec3_nods_badopt.rpl
testdata/val_nsec3_nods_negcache.rpl
testdata/val_nsec3_nods_soa.rpl
testdata/val_nsec3_wcany.rpl
testdata/val_nsec3_wcany_nodeny.rpl
testdata/val_nx.rpl
testdata/val_nx_nodeny.rpl
testdata/val_nx_nowc.rpl
testdata/val_nx_nsec3_collision.rpl
testdata/val_nx_nsec3_params.rpl
testdata/val_nx_overreach.rpl
testdata/val_positive.rpl
testdata/val_positive_nosigs.rpl
testdata/val_positive_wc.rpl
testdata/val_positive_wc_nodeny.rpl
testdata/val_qds_badanc.rpl
testdata/val_qds_oneanc.rpl
testdata/val_qds_twoanc.rpl
testdata/val_refer_unsignadd.rpl
testdata/val_referd.rpl
testdata/val_referglue.rpl
testdata/val_secds.rpl
testdata/val_unsec_cname.rpl
testdata/val_unsecds.rpl
testdata/val_unsecds_negcache.rpl
testdata/val_unsecds_qtypeds.rpl
validator/val_neg.h

index 598aef01d055fc430b26b041eb1bb2bb56eb807b..25bc19c82670274405185b72c6464e24de9ca60c 100644 (file)
@@ -1,6 +1,18 @@
+17 November 2008: Wouter
+       - theoretical fix for problems reported on mailing list.
+         If a delegation point has no A but only AAAA and do-ip6 is no,
+         resolution would fail. Fixed to ask for the A and AAAA records.
+         It has to ask for both always, so that it can fail quietly, from
+         TLD perspective, when a zone is only reachable on one transport.
+       - test for above, only AAAA and doip6 is no. Fix causes A record
+         for nameserver to be fetched.
+       - fixup address duplication on cache fillup for delegation points.
+       - testset updated for new query answer requirements.
+
 14 November 2008: Wouter
        - created 1.1.0 release tag in svn.
        - trunk moved to 1.1.1
+       - fixup unittest-neg for locking.
 
 13 November 2008: Wouter
        - added fedora init and specfile to contrib (by Paul Wouters).
index 527b79c160a4e3bb600d3d0b2d84cb958d3615b8..833911d5c0c74364a54ed965c2efed6b1bf816ec 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -60,4 +60,4 @@ o on windows version, implement that OS ancillary data capabilities for
 o local-zone directive with authority service, full authority server 
   is a non-goal.
 o configure option to force use of builtin ldns tarball.
-
+o include /etc/pki/dnssec-keys/production/*.conf with wildcard support.
index dae6d750b02d995d0738b8efd19eb18264d88553..0c5f02b993d13e7cd7e558cf366baa0e525825db 100644 (file)
@@ -72,10 +72,12 @@ struct delegpt* delegpt_copy(struct delegpt* dp, struct regional* region)
                if(!delegpt_add_ns(copy, region, ns->name))
                        return NULL;
                copy->nslist->resolved = ns->resolved;
+               copy->nslist->got4 = ns->got4;
+               copy->nslist->got6 = ns->got6;
        }
        for(a = dp->target_list; a; a = a->next_target) {
                if(!delegpt_add_addr(copy, region, &a->addr, a->addrlen, 
-                       a->bogus))
+                       a->bogus, 0))
                        return NULL;
        }
        return copy;
@@ -108,6 +110,8 @@ delegpt_add_ns(struct delegpt* dp, struct regional* region, uint8_t* name)
        dp->nslist = ns;
        ns->name = regional_alloc_init(region, name, ns->namelen);
        ns->resolved = 0;
+       ns->got4 = 0;
+       ns->got6 = 0;
        return 1;
 }
 
@@ -125,25 +129,52 @@ delegpt_find_ns(struct delegpt* dp, uint8_t* name, size_t namelen)
        return NULL;
 }
 
+struct delegpt_addr*
+delegpt_find_addr(struct delegpt* dp, struct sockaddr_storage* addr, 
+       socklen_t addrlen)
+{
+       struct delegpt_addr* p = dp->target_list;
+       while(p) {
+               if(sockaddr_cmp_addr(addr, addrlen, &p->addr, p->addrlen)==0) {
+                       return p;
+               }
+               p = p->next_target;
+       }
+       return NULL;
+}
+
 int 
 delegpt_add_target(struct delegpt* dp, struct regional* region, 
        uint8_t* name, size_t namelen, struct sockaddr_storage* addr, 
-       socklen_t addrlen, int bogus)
+       socklen_t addrlen, int bogus, int nodup)
 {
        struct delegpt_ns* ns = delegpt_find_ns(dp, name, namelen);
        if(!ns) {
                /* ignore it */
                return 1;
        }
-       ns->resolved = 1;
-       return delegpt_add_addr(dp, region, addr, addrlen, bogus);
+       if(addr_is_ip6(addr, addrlen))
+               ns->got6 = 1;
+       else    ns->got4 = 1;
+       if(ns->got4 && ns->got6)
+               ns->resolved = 1;
+       return delegpt_add_addr(dp, region, addr, addrlen, bogus, nodup);
 }
 
 int 
 delegpt_add_addr(struct delegpt* dp, struct regional* region, 
-       struct sockaddr_storage* addr, socklen_t addrlen, int bogus)
+       struct sockaddr_storage* addr, socklen_t addrlen, int bogus, int nodup)
 {
-       struct delegpt_addr* a = (struct delegpt_addr*)regional_alloc(region,
+       struct delegpt_addr* a;
+       if(nodup) {
+               if((a = delegpt_find_addr(dp, addr, addrlen))) {
+                       if(bogus)
+                               a->bogus = bogus;
+                       return 1;
+               }
+       }
+
+       a = (struct delegpt_addr*)regional_alloc(region,
                sizeof(struct delegpt_addr));
        if(!a)
                return 0;
@@ -213,7 +244,8 @@ void delegpt_log(enum verbosity_value v, struct delegpt* dp)
        if(verbosity >= VERB_ALGO) {
                for(ns = dp->nslist; ns; ns = ns->next) {
                        dname_str(ns->name, buf);
-                       log_info("  %s%s%s", buf, (ns->resolved?"*":""),
+                       log_info("  %s %s%s%s%s", buf, (ns->resolved?"*":""),
+                       (ns->got4?" A":""), (ns->got6?" AAAA":""),
                        (dp->bogus?" BOGUS":"") );
                }
                for(a = dp->target_list; a; a = a->next_target) {
@@ -299,10 +331,10 @@ delegpt_from_message(struct dns_msg* msg, struct regional* region)
                        continue;
 
                if(ntohs(s->rk.type) == LDNS_RR_TYPE_A) {
-                       if(!delegpt_add_rrset_A(dp, region, s))
+                       if(!delegpt_add_rrset_A(dp, region, s, 0))
                                return NULL;
                } else if(ntohs(s->rk.type) == LDNS_RR_TYPE_AAAA) {
-                       if(!delegpt_add_rrset_AAAA(dp, region, s))
+                       if(!delegpt_add_rrset_AAAA(dp, region, s, 0))
                                return NULL;
                }
        }
@@ -332,7 +364,7 @@ delegpt_rrset_add_ns(struct delegpt* dp, struct regional* region,
 
 int 
 delegpt_add_rrset_A(struct delegpt* dp, struct regional* region,
-       struct ub_packed_rrset_key* ak)
+       struct ub_packed_rrset_key* ak, int nodup)
 {
         struct packed_rrset_data* d=(struct packed_rrset_data*)ak->entry.data;
         size_t i;
@@ -347,7 +379,7 @@ delegpt_add_rrset_A(struct delegpt* dp, struct regional* region,
                 memmove(&sa.sin_addr, d->rr_data[i]+2, INET_SIZE);
                 if(!delegpt_add_target(dp, region, ak->rk.dname,
                         ak->rk.dname_len, (struct sockaddr_storage*)&sa,
-                        len, (d->security==sec_status_bogus) ))
+                        len, (d->security==sec_status_bogus), nodup))
                         return 0;
         }
         return 1;
@@ -355,7 +387,7 @@ delegpt_add_rrset_A(struct delegpt* dp, struct regional* region,
 
 int 
 delegpt_add_rrset_AAAA(struct delegpt* dp, struct regional* region,
-       struct ub_packed_rrset_key* ak)
+       struct ub_packed_rrset_key* ak, int nodup)
 {
         struct packed_rrset_data* d=(struct packed_rrset_data*)ak->entry.data;
         size_t i;
@@ -370,7 +402,7 @@ delegpt_add_rrset_AAAA(struct delegpt* dp, struct regional* region,
                 memmove(&sa.sin6_addr, d->rr_data[i]+2, INET6_SIZE);
                 if(!delegpt_add_target(dp, region, ak->rk.dname,
                         ak->rk.dname_len, (struct sockaddr_storage*)&sa,
-                        len, (d->security==sec_status_bogus) ))
+                        len, (d->security==sec_status_bogus), nodup))
                         return 0;
         }
         return 1;
@@ -385,9 +417,9 @@ delegpt_add_rrset(struct delegpt* dp, struct regional* region,
        if(ntohs(rrset->rk.type) == LDNS_RR_TYPE_NS)
                return delegpt_rrset_add_ns(dp, region, rrset);
        else if(ntohs(rrset->rk.type) == LDNS_RR_TYPE_A)
-               return delegpt_add_rrset_A(dp, region, rrset);
+               return delegpt_add_rrset_A(dp, region, rrset, 0);
        else if(ntohs(rrset->rk.type) == LDNS_RR_TYPE_AAAA)
-               return delegpt_add_rrset_AAAA(dp, region, rrset);
+               return delegpt_add_rrset_AAAA(dp, region, rrset, 0);
        log_warn("Unknown rrset type added to delegpt");
        return 1;
 }
index 23244fc001c4e28ad7e7d26df2fecdca6355ccc9..e0714ce771db39c8ff4a01d820348c5c6e27d01c 100644 (file)
@@ -90,6 +90,10 @@ struct delegpt_ns {
         * true if the address is known, or marked true if failed.
         */
        int resolved;
+       /** if the ipv4 address is in the delegpt */
+       uint8_t got4;
+       /** if the ipv6 address is in the delegpt */
+       uint8_t got6;
 };
 
 /**
@@ -171,34 +175,39 @@ int delegpt_rrset_add_ns(struct delegpt* dp, struct regional* regional,
  * @param addr: the address.
  * @param addrlen: the length of addr.
  * @param bogus: security status for the address, pass true if bogus.
+ * @param nodup: if true, no address duplicates are made by this add. 
+ *     name duplicates are always filtered.
  * @return false on error.
  */
 int delegpt_add_target(struct delegpt* dp, struct regional* regional, 
        uint8_t* name, size_t namelen, struct sockaddr_storage* addr, 
-       socklen_t addrlen, int bogus);
+       socklen_t addrlen, int bogus, int nodup);
 
 /**
  * Add A RRset to delegpt.
  * @param dp: delegation point.
  * @param regional: where to allocate the info.
  * @param rrset: RRset A to add.
+ * @param nodup: if true, no duplicates are made by this add. takes time.
  * @return 0 on alloc error.
  */
 int delegpt_add_rrset_A(struct delegpt* dp, struct regional* regional, 
-       struct ub_packed_rrset_key* rrset);
+       struct ub_packed_rrset_key* rrset, int nodup);
 
 /**
  * Add AAAA RRset to delegpt.
  * @param dp: delegation point.
  * @param regional: where to allocate the info.
  * @param rrset: RRset AAAA to add.
+ * @param nodup: if true, no duplicates are made by this add. takes time.
  * @return 0 on alloc error.
  */
 int delegpt_add_rrset_AAAA(struct delegpt* dp, struct regional* regional, 
-       struct ub_packed_rrset_key* rrset);
+       struct ub_packed_rrset_key* rrset, int nodup);
 
 /**
  * Add any RRset to delegpt.
+ * Does not check for duplicates added.
  * @param dp: delegation point.
  * @param regional: where to allocate the info.
  * @param rrset: RRset to add, NS, A, AAAA.
@@ -214,10 +223,11 @@ int delegpt_add_rrset(struct delegpt* dp, struct regional* regional,
  * @param addr: the address.
  * @param addrlen: the length of addr.
  * @param bogus: if address is bogus.
+ * @param nodup: if true, no duplicates are made by this add. takes time.
  * @return false on error.
  */
 int delegpt_add_addr(struct delegpt* dp, struct regional* regional, 
-       struct sockaddr_storage* addr, socklen_t addrlen, int bogus);
+       struct sockaddr_storage* addr, socklen_t addrlen, int bogus, int nodup);
 
 /** 
  * Find NS record in name list of delegation point.
@@ -229,6 +239,16 @@ int delegpt_add_addr(struct delegpt* dp, struct regional* regional,
 struct delegpt_ns* delegpt_find_ns(struct delegpt* dp, uint8_t* name, 
        size_t namelen);
 
+/** 
+ * Find address record in total list of delegation point.
+ * @param dp: delegation point.
+ * @param addr: address
+ * @param addrlen: length of addr
+ * @return the addr structure or NULL if not found.
+ */
+struct delegpt_addr* delegpt_find_addr(struct delegpt* dp, 
+       struct sockaddr_storage* addr, socklen_t addrlen);
+
 /**
  * Print the delegation point to the log. For debugging.
  * @param v: verbosity value that is needed to emit to log.
index 09dde0d9146037ff801234ffe744f05e47e64b65..7f378834c2eaac2bb527a25d62b681dafe82a500 100644 (file)
@@ -203,7 +203,7 @@ read_fwds_addr(struct iter_forwards* fwd, struct config_stub* s,
                                s->name, p->str);
                        return 0;
                }
-               if(!delegpt_add_addr(dp, fwd->region, &addr, addrlen, 0)) {
+               if(!delegpt_add_addr(dp, fwd->region, &addr, addrlen, 0, 1)) {
                        log_err("out of memory");
                        return 0;
                }
index ad5de8fc83801fa7fc2e136e1c451465b364ff74..4a0ded07917b5d40357239345203a55763f5661a 100644 (file)
@@ -86,7 +86,7 @@ ah(struct delegpt* dp, struct regional* r, const char* sv, const char* ip)
        if(!delegpt_add_ns(dp, r, ldns_rdf_data(rdf)) ||
           !extstrtoaddr(ip, &addr, &addrlen) ||
           !delegpt_add_target(dp, r, ldns_rdf_data(rdf), ldns_rdf_size(rdf),
-               &addr, addrlen, 0)) {
+               &addr, addrlen, 0, 1)) {
                ldns_rdf_deep_free(rdf);
                return 0;
        }
@@ -224,7 +224,7 @@ read_stubs_addr(struct iter_hints* hints, struct config_stub* s,
                                s->name, p->str);
                        return 0;
                }
-               if(!delegpt_add_addr(dp, hints->region, &addr, addrlen, 0)) {
+               if(!delegpt_add_addr(dp, hints->region, &addr, addrlen, 0, 1)) {
                        log_err("out of memory");
                        return 0;
                }
@@ -317,7 +317,7 @@ read_root_hints(struct iter_hints* hints, char* fname)
                                        ldns_rdf_data(ldns_rr_owner(rr)),
                                        ldns_rdf_size(ldns_rr_owner(rr)),
                                        (struct sockaddr_storage*)&sa, len, 
-                                       0)) {
+                                       0, 1)) {
                                log_err("out of memory reading root hints");
                                goto stop_read;
                        }
@@ -333,7 +333,7 @@ read_root_hints(struct iter_hints* hints, char* fname)
                                        ldns_rdf_data(ldns_rr_owner(rr)),
                                        ldns_rdf_size(ldns_rr_owner(rr)),
                                        (struct sockaddr_storage*)&sa, len,
-                                       0)) {
+                                       0, 1)) {
                                log_err("out of memory reading root hints");
                                goto stop_read;
                        }
index 6f6eab75232672287e021a35e6c1fbdd9dab6867..e9b1bfdb496aa92037f7a2df030fa5acdc130dcc 100644 (file)
@@ -1126,7 +1126,7 @@ query_for_targets(struct module_qstate* qstate, struct iter_qstate* iq,
                        continue;
                }
 
-               if(ie->supports_ipv6) {
+               if(ie->supports_ipv6 && !ns->got6) {
                        /* Send the AAAA request. */
                        if(!generate_target_query(qstate, iq, id, 
                                ns->name, ns->namelen,
@@ -1135,11 +1135,13 @@ query_for_targets(struct module_qstate* qstate, struct iter_qstate* iq,
                        query_count++;
                }
                /* Send the A request. */
-               if(!generate_target_query(qstate, iq, id, 
-                       ns->name, ns->namelen, 
-                       LDNS_RR_TYPE_A, iq->qchase.qclass))
-                       return 0;
-               query_count++;
+               if(!ns->got4) {
+                       if(!generate_target_query(qstate, iq, id, 
+                               ns->name, ns->namelen, 
+                               LDNS_RR_TYPE_A, iq->qchase.qclass))
+                               return 0;
+                       query_count++;
+               }
 
                /* mark this target as in progress. */
                ns->resolved = 1;
index 7f033803fae142a0465eb0bb07fd6124083874a2..c1928a96bc7ae9f942be3e63dc30aa2e8e53f912 100644 (file)
@@ -154,7 +154,7 @@ find_add_addrs(struct module_env* env, uint16_t qclass,
                akey = rrset_cache_lookup(env->rrset_cache, ns->name, 
                        ns->namelen, LDNS_RR_TYPE_A, qclass, 0, now, 0);
                if(akey) {
-                       if(!delegpt_add_rrset_A(dp, region, akey)) {
+                       if(!delegpt_add_rrset_A(dp, region, akey, 0)) {
                                lock_rw_unlock(&akey->entry.lock);
                                return 0;
                        }
@@ -165,7 +165,7 @@ find_add_addrs(struct module_env* env, uint16_t qclass,
                akey = rrset_cache_lookup(env->rrset_cache, ns->name, 
                        ns->namelen, LDNS_RR_TYPE_AAAA, qclass, 0, now, 0);
                if(akey) {
-                       if(!delegpt_add_rrset_AAAA(dp, region, akey)) {
+                       if(!delegpt_add_rrset_AAAA(dp, region, akey, 0)) {
                                lock_rw_unlock(&akey->entry.lock);
                                return 0;
                        }
@@ -191,7 +191,7 @@ cache_fill_missing(struct module_env* env, uint16_t qclass,
                akey = rrset_cache_lookup(env->rrset_cache, ns->name, 
                        ns->namelen, LDNS_RR_TYPE_A, qclass, 0, now, 0);
                if(akey) {
-                       if(!delegpt_add_rrset_A(dp, region, akey)) {
+                       if(!delegpt_add_rrset_A(dp, region, akey, 1)) {
                                lock_rw_unlock(&akey->entry.lock);
                                return 0;
                        }
@@ -202,7 +202,7 @@ cache_fill_missing(struct module_env* env, uint16_t qclass,
                akey = rrset_cache_lookup(env->rrset_cache, ns->name, 
                        ns->namelen, LDNS_RR_TYPE_AAAA, qclass, 0, now, 0);
                if(akey) {
-                       if(!delegpt_add_rrset_AAAA(dp, region, akey)) {
+                       if(!delegpt_add_rrset_AAAA(dp, region, akey, 1)) {
                                lock_rw_unlock(&akey->entry.lock);
                                return 0;
                        }
index dc3811b7a940f29cc548da6b5b8df4bc8b7959e6..3cc522ae02cad45600376065fb65b91f96b7a879 100644 (file)
@@ -549,8 +549,10 @@ run_scenario(struct replay_runtime* runtime)
        if(runtime->pending_list) {
                struct fake_pending* p;
                log_err("testbound: there are still messages pending.");
-               for(p = runtime->pending_list; p; p=p->next)
+               for(p = runtime->pending_list; p; p=p->next) {
                        log_pkt("pending msg", p->pkt);
+                       log_addr(0, "pending to", &p->addr, p->addrlen);
+               }
                fatal_exit("testbound: there are still messages pending.");
        }
        if(runtime->answer_list) {
index 1c9869768cb9ea6490c4d0bd658d5fafce2f6988..d985d3f92c596b84abf9c459322c610cc1f41140 100644 (file)
@@ -201,6 +201,7 @@ static void add_item(struct val_neg_cache* neg)
        char* zname = get_random_zone();
        char* from, *to;
 
+       lock_basic_lock(&neg->lock);
        if(negverbose)
                log_nametypeclass(0, "add to zone", (uint8_t*)zname, 0, 0);
        z = neg_find_zone(neg, (uint8_t*)zname, strlen(zname)+1, 
@@ -233,6 +234,7 @@ static void add_item(struct val_neg_cache* neg)
        rr_data = (uint8_t*)to;
 
        neg_insert_data(neg, z, &nsec);
+       lock_basic_unlock(&neg->lock);
 }
 
 /** remove a random item */
@@ -243,8 +245,11 @@ static void remove_item(struct val_neg_cache* neg)
        rbnode_t* walk;
        struct val_neg_zone* z;
        
-       if(neg->tree.count == 0)
+       lock_basic_lock(&neg->lock);
+       if(neg->tree.count == 0) {
+               lock_basic_unlock(&neg->lock);
                return; /* nothing to delete */
+       }
 
        /* pick a random zone */
        walk = rbtree_first(&neg->tree); /* first highest parent, big count */
@@ -261,10 +266,14 @@ static void remove_item(struct val_neg_cache* neg)
                if(z->in_use)
                        i++;
        }
-       if(!walk || walk == RBTREE_NULL)
+       if(!walk || walk == RBTREE_NULL) {
+               lock_basic_unlock(&neg->lock);
                return;
-       if(!z->in_use)
+       }
+       if(!z->in_use) {
+               lock_basic_unlock(&neg->lock);
                return;
+       }
        if(negverbose)
                log_nametypeclass(0, "delete zone", z->name, 0, 0);
 
@@ -283,13 +292,16 @@ static void remove_item(struct val_neg_cache* neg)
                if(d->in_use)
                        i++;
        }
-       if(!walk || walk == RBTREE_NULL)
+       if(!walk || walk == RBTREE_NULL) {
+               lock_basic_unlock(&neg->lock);
                return;
+       }
        if(d->in_use) {
                if(negverbose)
                        log_nametypeclass(0, "neg delete item:", d->name, 0, 0);
                neg_delete_data(neg, d);
        }
+       lock_basic_unlock(&neg->lock);
 }
 
 /** sum up the zone trees */
@@ -459,6 +471,7 @@ static void check_neg_invariants(struct val_neg_cache* neg)
 {
        struct val_neg_zone* z;
        /* check structure of LRU list */
+       lock_basic_lock(&neg->lock);
        check_lru(neg);
        unit_assert(neg->max == 1024*1024);
        unit_assert(neg->nsec3_max_iter == 1500);
@@ -470,6 +483,7 @@ static void check_neg_invariants(struct val_neg_cache* neg)
                unit_assert(neg->first == NULL);
                unit_assert(neg->last == NULL);
                unit_assert(neg->use == 0);
+               lock_basic_unlock(&neg->lock);
                return;
        }
 
@@ -479,6 +493,7 @@ static void check_neg_invariants(struct val_neg_cache* neg)
        RBTREE_FOR(z, struct val_neg_zone*, &neg->tree) {
                check_zone_invariants(neg, z);
        }
+       lock_basic_unlock(&neg->lock);
 }
 
 /** perform stress test on insert and delete in neg cache */
index b359f18bc426b0b327d19a84d5610b2a206daba2..e01b6863abb1ead95e6170eda6098229162213a2 100644 (file)
@@ -3,6 +3,7 @@
 server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 901386930e25b18f40b8607cc54209ecd1b3cec0..374294637aa18b96d894811f00d9d98f2d3cfc88 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.     3600    IN      DS      30899 5 1 14188c885f20623ad1d3bec42798f3f951793e4c ; xehac-mofum-malyd-bomaf-pegit-fuzes-ganin-misiz-nigel-nozog-soxix"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 5e30664cd8084068725685ba243a037890635606..3643f8cebf9b4a839cceac8fc61cd1c5999e176e 100644 (file)
@@ -3,6 +3,7 @@
 server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 3da25d5599a5046e042ee659e10446710da5ef10..f466b9131c909669dbf7bb69b10dc11c2e289a41 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        harden-referral-path: no
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 9fab5558967a0d4775f94f58080d61439951b3f1..3e4850bc38c4dd8147faf415a990a54b38097b55 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.     3600    IN      DS      30899 5 1 14188c885f20623ad1d3bec42798f3f951793e4c ; xehac-mofum-malyd-bomaf-pegit-fuzes-ganin-misiz-nigel-nozog-soxix"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 7155b55048a23375d12d18fb789439452a931a33..9a25d52e2b084f02c0714f23b700d7af2ea3d6ac 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index 5bd75941c67002b39c6274c14901fcfe36fd09cd..46e17fe798e778c0b9334e2266f0f217dc2205dc 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index 0f19a0a4c79c8a9789327f511c379bedd4eb6967..2e640fd114fe9d280f3cf27bea66371690471ce9 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index e544f6b320fba96acc7d51379b20defdcade2e4d..6a228606f699b234c031c943f241eb3a487f0db4 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index 91bc1712f46408dfa70a4345e9112a0f6caf9f9e..12019816ac16d2e2095b586cd9e3e40c2bf620bb 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index a09332e2dc1d47a1e01e712fee5de9250302dfc4..fd1cf238a1785859f61a59fa14a8941ba9edaf80 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index e0f1844493f2f4f00f643d1c2c40377a71a389c3..ce5a867224708fb723b2e5ffa322068d6559e68b 100644 (file)
@@ -1,6 +1,8 @@
 ; config options
 server:
        harden-glue: "no"
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index 781a8c37881c6e852ee3b314dc26221a449f6bd3..0e8405db94e99b6aa52fc656b632f01ebe60c429 100644 (file)
@@ -27,11 +27,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.sub.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -39,11 +39,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-ns.example.net. IN A
+net. IN A
 SECTION AUTHORITY
 net.   IN NS   e.gtld-servers.net.
 SECTION ADDITIONAL
@@ -79,11 +79,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.sub.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
@@ -106,6 +106,24 @@ SECTION ADDITIONAL
 e.gtld-servers.net.    IN      A       192.12.94.30
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+e.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+a.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qtype qname
 ADJUST copy_id
@@ -203,7 +221,6 @@ ns.sub.example.com. IN A 1.2.3.6
 ns.sub.example.com.    3600    IN      RRSIG   A 5 4 3600 20070926134150 20070829134150 30899 sub.example.com. UF7shD/gt1FOp2UHgLTNbPzVykklSXFMEtJ1xD+Hholwf/PIzd7zoaIttIYibNa4fUXCqMg22H9P7MRhfmFe6g== ;{id = 30899}
 ENTRY_END
 
-
 ; response to query of interest
 ENTRY_BEGIN
 MATCH opcode qtype qname
@@ -217,6 +234,15 @@ www.sub.example.com.    3600    IN      RRSIG   A 5 4 3600 20070926134150 200708
 SECTION AUTHORITY
 SECTION ADDITIONAL
 ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.sub.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
 RANGE_END
 
 ; ns.example.com.
@@ -270,11 +296,11 @@ ENTRY_END
 
 ; correct delegation with DS
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR AA NOERROR
 SECTION QUESTION
-www.sub.example.com. IN A
+sub.example.com. IN A
 SECTION ANSWER
 SECTION AUTHORITY
 sub.example.com. IN NS ns.sub.example.com.
@@ -339,6 +365,15 @@ SECTION ADDITIONAL
 ns.sub.example.com. IN A 1.2.3.6
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.sub.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ; response to query of interest
 ENTRY_BEGIN
 MATCH opcode qtype qname
index 470640faa752f7f856ca84e254481058e9fc0c55..0ff322cd42bcd8bdd122a9b5632fdd4bceca3f0d 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
@@ -331,6 +332,15 @@ SECTION ANSWER
 www.sub.example.com. IN A       11.11.11.11
 www.sub.example.com.    3600    IN      RRSIG   A 5 4 3600 20070926134150 20070829134150 30899 sub.example.com. 0DqqRfRtm7VSEQ4mmBbzrKRqQAay3JAE8DPDGmjtokrrjN9F1G/HxozDV7bjdIh2EChlQea8FPwf/GepJMUVxg== ;{id = 30899}
 ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.sub.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
 RANGE_END
 
 
index 53f8f8a5a4c0bb2ce9fe234f8df8ea9e6ec97709..9472dcc1a1e6b18f8862b16e07621e88528fa9da 100644 (file)
@@ -27,11 +27,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -39,11 +39,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-ns.example.net. IN A
+net. IN A
 SECTION AUTHORITY
 net.   IN NS   e.gtld-servers.net.
 SECTION ADDITIONAL
@@ -79,11 +79,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 example.com.   IN NS   ns.example.net.
@@ -109,6 +109,24 @@ SECTION ADDITIONAL
 e.gtld-servers.net.    IN      A       192.12.94.30
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+a.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+e.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qtype qname
 ADJUST copy_id
@@ -210,6 +228,15 @@ SECTION ANSWER
 www.example.com. IN A  10.20.30.40
 www.example.com.        3600    IN      RRSIG   A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
 ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
 RANGE_END
 
 ; ns.example.com.
index 941a8098c2fd6530aae9554234d47a4f673bd012..e794b54fdaa86dce6a52ecca222cd2dda74e786d 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
@@ -208,6 +209,15 @@ SECTION ANSWER
 www.example.com. IN A  10.20.30.40
 www.example.com.        3600    IN      RRSIG   A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
 ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
 RANGE_END
 
 ; ns.example.com.
index 3976e7e416e8ad2f02cb8d0da5c65a5f692497f4..15f9fff60860d70355b95c1756429e09d4583bf1 100644 (file)
@@ -31,7 +31,16 @@ MATCH opcode qtype qname
 ADJUST copy_id
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+a.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -55,11 +64,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 example.com.   IN NS   ns2.example.com.
index 2b3c059ec3e7e62a2d7b791b67b0cbb140c6edee..857a64e49d95ab86bca996f4beaa3d54f7467bc5 100644 (file)
@@ -28,11 +28,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 
@@ -45,11 +45,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qname
+MATCH opcode subdomain
 ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-ns.example.net. IN A
+net. IN A
 SECTION AUTHORITY
 net.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -74,11 +74,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.net.
 SECTION ADDITIONAL
@@ -97,6 +97,15 @@ SECTION ADDITIONAL
 a.gtld-servers.net.    IN      A       192.5.6.30
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qname
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+a.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qname
 ADJUST copy_id copy_query
@@ -160,6 +169,16 @@ ns.example.com.            IN      A       1.2.3.4
 ns.example.com. 3600    IN      RRSIG   A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qname qtype
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+; bogus
+ENTRY_END
+
 ; response to DNSKEY priming query
 ENTRY_BEGIN
 MATCH opcode qtype qname
index 2d0c611f32e782932cb8c77324f04916cd57cd17..5e5e27a346da61e17084a78ce2397bf6f0ccc2fe 100644 (file)
@@ -36,11 +36,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 
@@ -58,11 +58,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qname
+MATCH opcode subdomain
 ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-ns.example.net. IN A
+net. IN A
 SECTION AUTHORITY
 net.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -70,11 +70,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qname
+MATCH opcode subdomain
 ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-ns.example.org. IN A
+org. IN A
 SECTION AUTHORITY
 org.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -99,11 +99,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com. NS ns.example.net.
 example.com. NS ns.example.org.
@@ -124,6 +124,15 @@ SECTION ADDITIONAL
 a.gtld-servers.net.    IN      A       192.5.6.30
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qname
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+a.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qname
 ADJUST copy_id copy_query
@@ -248,6 +257,16 @@ ns.example.com.            IN      A       1.2.3.4
 ns.example.com. 3600    IN      RRSIG   A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+; bogus message.
+ENTRY_END
+
 ; response to DNSKEY priming query
 ENTRY_BEGIN
 MATCH opcode qtype qname
diff --git a/testdata/iter_got6only.rpl b/testdata/iter_got6only.rpl
new file mode 100644 (file)
index 0000000..d7b4fde
--- /dev/null
@@ -0,0 +1,135 @@
+; config options
+server:
+       do-ip6: no
+       target-fetch-policy: "0 0 0 0 0 "
+stub-zone:
+       name: "."
+       stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test iterator when only ip6 in dp but doip6 is no
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+       ADDRESS 193.0.14.129 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS        K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET.    IN      A       193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION AUTHORITY
+com.   IN NS   a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net.    IN      A       192.5.6.30
+ENTRY_END
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 100
+       ADDRESS 192.5.6.30
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION ANSWER
+com.   IN NS   a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net.    IN      A       192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION AUTHORITY
+example.com.   IN NS   ns.bla.com.
+SECTION ADDITIONAL
+; not included
+;ns.bla.com.           IN      A       1.2.3.4
+
+; and this one is useless because do-ip6 is "no"
+ns.bla.com.            IN      AAAA    ::53
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.bla.com. IN A
+SECTION ANSWER
+ns.bla.com.            IN      A       1.2.3.4
+ENTRY_END
+
+RANGE_END
+
+; ns.example.com.
+RANGE_BEGIN 0 100
+       ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com.   IN NS   ns.example.com.
+SECTION ADDITIONAL
+ns.example.com.                IN      A       1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A  10.20.30.40
+SECTION AUTHORITY
+example.com.   IN NS   ns.example.com.
+SECTION ADDITIONAL
+ns.example.com.                IN      A       1.2.3.4
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+; recursion happens here.
+STEP 10 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A  10.20.30.40
+SECTION AUTHORITY
+example.com.   IN NS   ns.example.com.
+SECTION ADDITIONAL
+ns.example.com.                IN      A       1.2.3.4
+ENTRY_END
+
+SCENARIO_END
index 2da091be229f55b1e913df2de74662a3bc5b1853..f40e5967f6f5562edcc5f483d4cbb75a9429642b 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
@@ -22,11 +25,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-example.com. IN AAAA
+com. IN AAAA
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -38,8 +41,8 @@ RANGE_END
 RANGE_BEGIN 0 100
        ADDRESS 192.5.6.30
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
 example.com. IN AAAA
@@ -66,6 +69,15 @@ RANGE_END
 RANGE_BEGIN 0 100
        ADDRESS 1.2.3.4
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qtype qname
 ADJUST copy_id
index f5906808c5cd5892c6eded31e0e766e4fb702ef9..116d7a2d42693885d74d6962899b8af80c37edd8 100644 (file)
@@ -1,6 +1,8 @@
 ; config options
 server:
        harden-referral-path: no
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
         name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index 9760988b470ad1185e92ee0a7add2687f5750186..1bdcf48aebc04d971783d71cd6023f9fcd411198 100644 (file)
@@ -22,16 +22,25 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
 a.gtld-servers.net.    IN      A       192.5.6.30
 ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id 
+REPLY QR NOERROR
+SECTION QUESTION
+a.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
 RANGE_END
 
 ; a.gtld-servers.net.
@@ -50,11 +59,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
+MATCH opcode subdomain
 ADJUST copy_id
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
index 891af28ed909bef1d9214a7950881227dd6d5084..8b7a4d570508094177bc990a3b67aa057aea76d6 100644 (file)
@@ -1,6 +1,7 @@
 ; config options
 server:
        harden-referral-path: yes
+       target-fetch-policy: "0 0 0 0 0"
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index f1ff1000f5d4cef0a4fa14a27bbd4077ad42b4e0..59110a5f178ecbcc2e25d6e59ae24b3d0edf2590 100644 (file)
@@ -29,11 +29,11 @@ SECTION ADDITIONAL
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qname
+MATCH opcode subdomain
 ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-K.ROOT-SERVERS.NET.    IN      A
+net.    IN      A
 SECTION AUTHORITY
 net.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -87,11 +87,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.net.
 SECTION ADDITIONAL
@@ -110,6 +110,24 @@ SECTION ADDITIONAL
 a.gtld-servers.net.    IN      A       192.5.6.30
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+A.ROOT-SERVERS.NET.    IN      AAAA
+SECTION ANSWER
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qname
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+a.gtld-servers.net. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qname
 ADJUST copy_id copy_query
@@ -122,6 +140,15 @@ SECTION ADDITIONAL
 A.ROOT-SERVERS.NET.    IN      A       198.41.0.4
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qname
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+K.ROOT-SERVERS.NET.    IN      AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qname
 ADJUST copy_id copy_query
@@ -221,6 +248,16 @@ ns.example.com.         IN      A       1.2.3.4
 ns.example.com. 3600    IN      RRSIG   A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qname qtype
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
+
 ; response to DNSKEY priming query
 ENTRY_BEGIN
 MATCH opcode qtype qname
index 603f5b1ccfb24ff28a8b19a0ecd1adbcecf05ea9..5687cf87ae9f27cf1846e5bad915aa498941ec17 100644 (file)
@@ -1,5 +1,7 @@
 ; config options
 server:
+       target-fetch-policy: "0 0 0 0 0"
+
        private-address: 10.0.0.0/8
        private-address: 172.16.0.0/12
        private-address: 192.168.0.0/16
@@ -33,11 +35,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -72,11 +74,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
@@ -99,6 +101,15 @@ SECTION ADDITIONAL
 ns.example.com.                IN      A       1.2.3.4
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qtype qname
 ADJUST copy_id
index e1a8dbbadea8da757cd850413057bd19ec9cc46e..d2db84a8e09746119a9c1da61b6ca0279c7b8d87 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
@@ -26,11 +29,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -38,23 +41,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
-REPLY QR NOERROR
-SECTION QUESTION
-ns.example.net. IN A
-SECTION AUTHORITY
-net.   IN NS   e.gtld-servers.net.
-SECTION ADDITIONAL
-e.gtld-servers.net.    IN      A       192.12.94.30
-ENTRY_END
-
-ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-ns.example.net. IN AAAA
+net. IN A
 SECTION AUTHORITY
 net.   IN NS   e.gtld-servers.net.
 SECTION ADDITIONAL
@@ -78,11 +69,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 example.com.   IN NS   ns.example.net.
@@ -109,23 +100,11 @@ e.gtld-servers.net.       IN      A       192.12.94.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
-REPLY QR NOERROR
-SECTION QUESTION
-ns.example.net. IN A
-SECTION AUTHORITY
-example.net.   IN NS   ns.example.net.
-SECTION ADDITIONAL
-ns.example.net.                IN      A       1.2.3.44
-ENTRY_END
-
-ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-ns.example.net. IN AAAA
+example.net. IN A
 SECTION AUTHORITY
 example.net.   IN NS   ns.example.net.
 SECTION ADDITIONAL
@@ -199,6 +178,16 @@ example.com.       IN NS   ns.example.net.
 SECTION ADDITIONAL
 ns.example.net         IN A    1.2.3.44
 ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 RANGE_END
 
 ; ns.example.com.
@@ -227,6 +216,15 @@ SECTION ANSWER
 ns.example.com. IN A   1.2.3.55
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qtype qname
 ADJUST copy_id
@@ -277,4 +275,19 @@ example.com.       IN NS   ns.example.net.
 ;ns.example.net        IN A    1.2.3.44
 ENTRY_END
 
+; query still pending
+STEP 30 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+ns.example.net. IN AAAA
+ENTRY_END
+
+; query still pending
+STEP 40 CHECK_ANSWER
+ENTRY_BEGIN
+REPLY RD RA
+SECTION QUESTION
+ENTRY_END
+
 SCENARIO_END
index 5ab5ddb8af3d2411bb22d4af516ba6280cbcbe71..e2e6b4502aa4a7fe5eed161366ddc86369398af1 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index f6acc278b9a32a80d5c1b007eeb435195929abd6..3b7dfd65cbe0b25b59051ba104cd89ecd2b29424 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
@@ -24,11 +27,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -52,11 +55,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 example.com.   IN NS   lame.example.com.
@@ -83,6 +86,24 @@ ns.example.com.              IN      A       1.2.3.4
 lame.example.com.              IN      A       1.2.3.5
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR RA NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR RA NOERROR
+SECTION QUESTION
+lame.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ENTRY_BEGIN
 MATCH opcode qtype qname
 ADJUST copy_id
@@ -118,8 +139,8 @@ lame.example.com.           IN      A       1.2.3.5
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode 
+ADJUST copy_id copy_query
 REPLY QR RA NOERROR
 SECTION QUESTION
 www.example.com. IN A
index 11a223b1858fcdbf8c7a4c3c6cc3c9ef7c86b654..c787ac32a2e0a25e7b1d2f9d3487c6e90fc97a32 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index ca6384d5e8e6c673e942776b1f7902cc04251f88..2dc2c8f2de2eea7228aaa96383b2d8f7d9069036 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
@@ -22,11 +25,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -50,11 +53,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
index 85a3ed69484ff47bbb83be3e909c1a6e486457ea..293c3fecea7474aeba33c9d8cbdd56178cdc5651 100644 (file)
@@ -1,4 +1,7 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index 164789b4feec9a95929c03f5642f99cb6f35d480..8f184d4015e736597b03fe419a8d85503f0acb22 100644 (file)
@@ -1,6 +1,8 @@
 ; config options
 server:
        harden-referral-path: no
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
         name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index 43c62e8d9111d7dbc48a56c498b2ed4b736a432f..f205b0e31e4c711e3cfaacd5c50cdc416128b08b 100644 (file)
@@ -1,6 +1,8 @@
 ; config options
 server:
        harden-referral-path: no
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
         name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index 88ab77fe2f1f73130ae26f64f9d18cc2ca13a554..1ce74ca17785a32d98ec124aa500ed98f34739e0 100644 (file)
@@ -3,6 +3,8 @@ server:
         trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
+
 stub-zone:
         name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index a633b5253b8184deb67c8144d1919cd7bfc0a244..93b6a3952a175665fdc334d4dcec81d90cc5ea5b 100644 (file)
@@ -49,23 +49,20 @@ SECTION ANSWER
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qname
-ADJUST copy_id copy_query
+MATCH opcode qtype qname
+ADJUST copy_id
 REPLY QR NOERROR
 SECTION QUESTION
-example.com. IN A
-SECTION AUTHORITY
-com.   IN NS   a.gtld-servers.net.
-SECTION ADDITIONAL
-a.gtld-servers.net.    IN      A       192.5.6.30
+ns.example.net.     IN      AAAA
+SECTION ANSWER
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qname
+MATCH opcode subdomain
 ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -125,7 +122,7 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qname
+MATCH opcode subdomain
 ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
@@ -136,18 +133,6 @@ SECTION ADDITIONAL
 ns.example.com.                IN      A       1.2.3.4
 ENTRY_END
 
-ENTRY_BEGIN
-MATCH opcode qname
-ADJUST copy_id copy_query
-REPLY QR NOERROR
-SECTION QUESTION
-www.example.com. IN A
-SECTION AUTHORITY
-example.com.   IN NS   ns.example.com.
-SECTION ADDITIONAL
-ns.example.com.                IN      A       1.2.3.4
-ENTRY_END
-
 ENTRY_BEGIN
 MATCH opcode qname
 ADJUST copy_id copy_query
@@ -190,6 +175,15 @@ ns.example.com.            IN      A       1.2.3.4
 ns.example.com. 3600    IN      RRSIG   A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qname qtype
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ; response to DNSKEY priming query
 ENTRY_BEGIN
 MATCH opcode qtype qname
index 2de5de489ecdf465182b65318096c8a7875ac05c..e4d2d2a99b7b9face3aaa1a4141fe82272624900 100644 (file)
@@ -1,4 +1,6 @@
 ; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index f803d28ebd2070ff2d2088c42daa1499e0c8c182..bffc9b71370c5787bdd50c2e490ca6e69f42a3a6 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 4ef5a517ebea57e8cf337624a43c6b7dc48d1943..66a08c524e1519daa8a2e7c7c994081cb8d07af7 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "sub.example.com.    3600    IN      DS      30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index f7b81b7d830cb54fb1dddab3c58aeabdd05d4a74..d69db39d9626e7b8f2ddfc16aaa831f0e7e340c0 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "sub.example.com.    3600    IN      DS      30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 80ab3fe70491cb42e3c325e468de6a23837b4fac..150504037cb83831f00fd47c35fc87bc25981385 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index e4f576fff8bf888e4e730e77afbcb211e08b77e9..8eceaa962805442a6ce015706a10c4a48e36ca2f 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index a54056f8044d9ef34de443c0cd484bd2a0c29f63..e0f7b1f62d5d63e0e4ca50fe1158ebd586df48c7 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index a47c6499028024e9c4fe6784ddf3955013dd1b12..459b11bd3713f84bc33d53c763a5f1b9ab7c0cce 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 9b3732eb2834460f2d5e9ee526ceaf3aec623555..5fd4acc75b10b9260f1fb07fa109a757e9339a33 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index c413c2761604f1d0c5d1782d898d0b071b1b362b..e8cd24bccb4a328ac0a275aa75f7430e0285298e 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 48f333ed4369b98c02f097f1abc6f4802ff47b1b..e34b0108db2d55920bf952fa7044c8c5efa2d4ac 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 464e593346d415c065d2f0a0d98148a5fdcc0735..f9e01b6602cf7c61d1dcd4c4be04fcd9d69fd083 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 3606f5fbcf7781d295ef2c57e7cdddf8db07c56d..f9f02b629a86345c46520815b0d0f6cdeec90363 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 671b50e12c672c4da5a3f305dea8ea5ef2ee16ce..cd9b8fa22c3e07caf128115c6520ab64abd3d340 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 8d4a0b2f952154bad82e47194794a84dec5f160e..d9b05c6383e12ad3dd144ef7c2dc3e46d5a1727f 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index b07ec102c4cb2a8699abe23acb7ac9e792bc3803..887c1afc4811d8aceb991bae7e46eb73b515ae30 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        trust-anchor: "example.org.    3600    IN      DNSKEY  256 3 3 ALXLUsWqUrY3JYER3T4TBJIIs70j+sDS/UT2QRp61SE7S3EEXopNXoFE73JLRmvpi/UrOO/Vz4Se6wXv/CYCKjGw06U4WRgRYXcpEhJROyNapmdIKSxhOzfLVE1gqA0PweZR8dtY3aNQSRn3sPpwJr6Mi/PqQKAMMrZ9ckJpf1+bQMOOvxgzz2U1GS18b3yZKcgTMEaJzd/GZYzi/BN2DzQ0MsrSwYXfsNLFOBbs8PJMW4LYIxeeOe6rUgkWOF7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 4ec57a1a64e82e2acb677b7d6b4f7920932dead1..e4716180670bffce22cde9fd6ca83fa53b89f5da 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 90936a327a1ed685c0123cd5192288d362b15851..2bcb62d0775bab86eb95d4732c1e4abdd64fa38d 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 749a5f35198e64ec20c2c4b9a91b7b6208f24274..d5136d5c5c6affe02340b718e3b605365d79c577 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 87366646b11cb417ad6218d4514277c1e8f5e6e8..2df719bfb35ea7dcb07f122cd40658c404088548 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 7a7bc5536f5cf222ce4a51c1b17963de56d63030..feb178b087d8916d648c2c83860871025be3f0ed 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 4fc3f5b9bf3b57cb2698db3202b9eadc6c5c0f1a..97722566bc5f4810d74c64e8623db22984e290b5 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 23042c76af2007e789beed98033c11f4545f18d9..c409a85316d127231196431d86dd549f4cbd5f2d 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 413f0d8ce9dad67be4ffc06ae071dcf09efa9bb1..057cd03119fc8751ca6c9e0a46af571f6fc2d61c 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 747e13f2c95df08c969d6cff43d1403d58182b71..8ff513d4787eda0e250b6cdb8e3ca50044982e2d 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
@@ -28,11 +29,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -40,11 +41,11 @@ a.gtld-servers.net. IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.net. IN A
+net. IN A
 SECTION AUTHORITY
 net.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -80,22 +81,22 @@ a.gtld-servers.net.     IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
 ns.example.com.                IN      A       1.2.3.4
 ENTRY_END
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.net. IN A
+example.net. IN A
 SECTION AUTHORITY
 example.net.   IN NS   ns.example.net.
 SECTION ADDITIONAL
@@ -120,6 +121,15 @@ ns.example.com.         IN      A       1.2.3.4
 ns.example.com. 3600    IN      RRSIG   A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
 ENTRY_END
 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 ; response to DNSKEY priming query
 ENTRY_BEGIN
 MATCH opcode qtype qname
index 69c3ff8de26cdd084cb3ff3013fc4b8e50f095bd..f564f879d6bca06f6f798128b5f969104654ea75 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 3bde7352da224b34c505b89625320d5fb43f94f1..6ece5344006e4f1e959a5ac2e90faa11d5b0d6ec 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index c102b1d241fe2c8574c3338d1ce9f5109ab173cb..5a9110663678a85544e277aa2bbe5861ccc287d0 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 76e0c9b2f04eb189411dd9f25168ce8f6c337918..111382d22c4ccf21117d28a8a8de3a6b27b683d4 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 9b5aef507883fd1569fa29ebad49d3b307217708..f544bf0592b3863695d2304dc7974b184303840c 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 3d071a0d29b9ae4fe08a631bc147fc895a2f4222..6235baadcd5cd9710a5ded07c8f6f1da211a6b6e 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 7818dee48fe029897e84e3b164d80e69ea90fc49..9b63081bb568750857889385d94c1be4ea4de4ac 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
        # test that default value of harden-dnssec-stripped is still yes.
 
 stub-zone:
@@ -28,11 +29,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -56,11 +57,11 @@ a.gtld-servers.net.     IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
@@ -121,6 +122,16 @@ SECTION ADDITIONAL
 ns.example.com.                IN      A       1.2.3.4
 www.example.com.        3600    IN      RRSIG   A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
 ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 RANGE_END
 
 STEP 1 QUERY
index dde62cf83d874b1f1de15fc2ba2a6e692cf56a87..125aaf1a9f278ed8d99d04723fbafd03101c0c0a 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        harden-dnssec-stripped: no
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
@@ -28,11 +29,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -56,11 +57,11 @@ a.gtld-servers.net.     IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
@@ -121,6 +122,16 @@ SECTION ADDITIONAL
 ns.example.com.                IN      A       1.2.3.4
 www.example.com.        3600    IN      RRSIG   A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
 ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+ENTRY_END
+
 RANGE_END
 
 STEP 1 QUERY
index 92b8e2833fbeceec21cededb7e03a1d8807256d1..ba0c6c951d5714c767e8af414baed4933859af09 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 28c196bab27c6b7cb27bcd1eb22fb0fed45063e3..13015dbdbd60e715ce9909f47b2e0155e3fd0d70 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index eeed926a5ccdbe8e3d378ca7fbd9d0f116dae9d4..8fc8d51eed0ef24c849c2258e86476fce89ae547 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index b23718fc02531ecbf9aae27dae5839dd405b0f56..4eaace1d80577e7a5c2166b41aff883621d60448 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 2abb85b1087ff09bae2391fc1c6f89ffac942f67..0bbc2a9e8ed10c27b344d1d245ba1c3bb462c835 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 0915b6b5ed5188f20442f31b7d2aa10ecdd94415..e06bfef8db45b85aaed938bbfe1d9c0a9ae36b45 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 0782a8eefaade70f69c337ff82efe007a298cd90..1ffb600387322530d702fa3221e01d261137a547 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index af633f60e618260c5ec48236e1fe01d0fae939c7..c3e420be73f440ea9217029c1cc96e3ee4e0c54e 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 18f3f4e1f051a33aef6440e5f1c3024ea0b35951..dc4971f6fc79fd6872400cc4ab1446b0edb04f98 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 701e94fe8b5156b4faa6671ba60cc6d34cffa2ce..059611668f94a28c722270ebec7f26b05450e9c3 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 03c175702344d10b8cde6bfc6ae801929bba10e3..5c5b7675320d9400cd1e616e8c137f87f7ce0588 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 099acabeecf8808e565a5b5c465e3da6590bded8..375be171b3037c3713ab91d490d4b097822910a8 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 1b5ed89c618cf161feb4a8fd3012a0e6a4e168f6..ca2ec03f5321269511b7245cdae669cd34841bef 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
@@ -27,11 +28,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -55,11 +56,11 @@ a.gtld-servers.net.     IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
index 30d534c67c5aa84048ec1f7ad9f0d7f26310f6cc..784b7e6b3cf3889916159e912b89b9cdfd36c333 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 8d241a3749847078b1f47e7aa8eb1a9e0d4f7f2f..500e864f278c09fbfce1a20ed717f652070618a7 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index df4bf02e070535df35aec5a5055516c950355854..c821b8923aae47442817d69afc6214cd98bc0203 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm 3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 42bd8a80c4760cb4946c049bd41c0da819e3fbaa..f10883818a0898f6a9be4b4e9c20dbc1cc2a5415 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 6baddc3c5835ed8c12e19a04b2ad15d0c88ca880..f384792b2c04488a5f06df90728a3868cffb7add 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 9e98d21d8caa7c140c3e7f8bd72bfec6e6870407..339d393487b8667583fbdd399c5591b00c0b59c0 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 01e2e026908463e7761be0688554247695b8e079..0700ab67aea460b98b2fd16d5123480f23c267da 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 6db7f820c7cb7335ee55040d77b539e626b85793..6ef6753d1b6ff31722c1895937fbdbe4db28cdd6 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 10f9d3922ef48ccaff69842cba6494062c30a669..a3a938a692fe2f3a904c31f93691e634ae40d7c7 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index c31c272e30e34d44133cbe2a0a8fb289b3a52f34..b52b3925d6725d624d33593c0c6775c6865bc90f 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 7e268e65f3e02d683f405ce1634d1f69a0ef8e68..870e3345f445e13600330115e4ea0104760b427b 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index f100f4fc71c4541676fa12c856b9541cbe9e9af5..9cca4dcf73344e33e39ca5b3cbfccbe331631692 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 0b7e2252e596b3e21d17b56c38c685bd9777ebaf..ed769f96f19181630555c8fa3887d87865fa0b0c 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 55971023a12930aad1d3add992071ad82d1510b6..8aab0868d8583a329e8e16d1574f1be4fc158740 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 95009fc404d71e7863f0dd2299204ab66de162af..db7dbe98906e869a93bbf716a536a3b5590ed89f 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 669d3faeec0bf14c9cc65ed87857f47e20a2e030..8ad659ab4afa655a066b50866dd19cfad5bcb369 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index e18e02098d82770e901da0b4c2a5212c67aba31e..4b92a7f15ef5b565b187d3c5aecccfda5a05beea 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index e6b7b17708a113f45e532c58310e62efd9bc0b07..6335ea3e183895d9e1a33b96771c8687266a3df1 100644 (file)
@@ -2,6 +2,7 @@
 server:
         trust-anchor: "example. DNSKEY  257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
        val-override-date: "20120420235959"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index b8488674bbc40c03481d1b2b1e271aa8e978323a..8fe3697880e8709e6be88e8357f4562aaaf41020 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 0b8a7821e0aaa1c07793c08e6aa7ad955eaba7f6..39ab0ca4c77fc25b26c1c96d9325d987d6242116 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 5df767bef3263b2939fcb374c6ccb26e7715e7d9..72fdb140ba4caa59c20402fb308d9ccd882760b8 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index f00b8f82d57081d1c83011682b4ecdaf23aec637..9ae0fcae3b73c6f6fbb8e7e8be46516fe8c505a2 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        val-nsec3-keysize-iterations: "1024 100 2048 200 4096 500"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index c5dcce26f1e6b4773261c637960feef5180ce2a0..56439c9e978c0445cb0280766268e3a5526f969c 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index fc16d9e49899e41b10fe3f76aca903921e155461..d9dfdfabdab5dc94583cdb85968449ffe253f35b 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 9b78f00f5024ff304bacb6d0d0a8f32d2b600afb..59f94d72d4e972390aa336cfc54a85a0b5a04d82 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 80fb1382cc20732ea4dfa13c93f19807ef3794a6..75dcbed75f37bc055794ac5912ccfac84dcb8c7a 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 91b016a9d2a7ae0a7e92ea028a7116fd1af9c458..3d47601bb0ad7e09ca82648772bfd2e5c0e401c1 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 2cf45c85add11fd33a3d14d64f105022b401c95a..817f41ac2dce41b4f81d3f9af0a9412f0836f3be 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 4c1201d86d29178bd3ebbd256c24847f43e8c97d..e245a7b6416d6c7e307b4f706628976a3996e6ea 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 10f915399f86b92194c801e35041b6c717695378..885dc42a3fe8929ddf007996d7547be921b25b75 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 8cc8ffb206499e0f7a07a1adbf43841728b4db93..de5525f0ed44622fa9b24cc969fa96c68eee152e 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index fed5a87ede3118507209b6962d1bc06ca5dbbcfc..47e07368fc081f6c357a80dcd37d0dddae97fc14 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index b259706bc82bacf8b27e98d6310fd7a51e30553c..92df5772666d2762608e520b9909a117cbc5c9fb 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 0d34ba319d3e68fe9c0882317c647c7250293375..2303555f63fdf602ff35482c96de2c0df193012a 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 0ba77cf97be004f8b6bf9562ca1146e10196cabf..f0cb10be50e8fa460b44d876dbe3aee876ef0578 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 76f86b283b7d57f9db85dc2278f520d697768ce6..3c45c10a13410a0a33d05112d6cb1a9ce06564f9 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 6c4406d861aaa774c438f1f733170c59ca3f98db..86a21d56d87abdec015f55481452786b2918a0f9 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
@@ -27,11 +28,11 @@ K.ROOT-SERVERS.NET. IN      A       193.0.14.129
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+com. IN A
 SECTION AUTHORITY
 com.   IN NS   a.gtld-servers.net.
 SECTION ADDITIONAL
@@ -55,11 +56,11 @@ a.gtld-servers.net.     IN      A       192.5.6.30
 ENTRY_END
 
 ENTRY_BEGIN
-MATCH opcode qtype qname
-ADJUST copy_id
+MATCH opcode subdomain
+ADJUST copy_id copy_query
 REPLY QR NOERROR
 SECTION QUESTION
-www.example.com. IN A
+example.com. IN A
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
 SECTION ADDITIONAL
index 704f533673eda4aca147f4d9c5fef70ccf4860b5..355e31581a18daebdab8aa5360e740c1466ae265 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 579dabb2a775836e76289cda83f71bee0abd3164..6cf8b1a25aad19358612cc5eac40a51d768f708b 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 81491e124fcf03e889066e9c641b6ac556a2d943..8fc6195caaccace185228db132732519e68cb88f 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "sub.example.com.        3600    IN      DS      30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index f47355199cf8d9cdb0f10fc5a966d4ae02cde821..9a0904084bc08b33d60a1eee611fe5ff34989838 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 6cb719441eb7d591641a6f9e927fef0d06f5e966..0d782895618e77f6946bc369974c66897ec07db9 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        trust-anchor: "sub.example.com.        3600    IN      DS      30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 8d174a2d6afc93b5c8129ea1c2bbc927c839b4dc..93e87f619e16655b59d54d643e77a2b173b9e778 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        access-control: 127.0.0.1 allow_snoop
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index b1398163ea37d51199144706d191c619f700ee6b..fe8900c0b886f5670adc0b66916f875f21ccd493 100644 (file)
@@ -5,6 +5,7 @@ server:
        val-override-date: "20070916134226"
        harden-referral-path: no
        access-control: 127.0.0.1 allow_snoop
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index c067eae7289e86e4aba3031c6fd0f5585acabfe3..c379c8545753ae9b7302e44305ec7a1711c52b27 100644 (file)
@@ -5,6 +5,7 @@ server:
        val-override-date: "20070916134226"
        directory: ""
        access-control: 127.0.0.1 allow_snoop
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 82d5c3fd21744c99153becebc54da5dcc44d4049..28be6142807961a4f05e8e6bb484c641b9350672 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index d045f19b94eefd4d57bd8c0a7334cea2210de08e..3650f18ec01f7ef29e2c831899dfca9144d9fbf4 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 7504d85884c42d27b0c702e1619f4084219a6c4f..21cb80076555763bb093f8875c0670213cb9b8b7 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 3f474cdb29a7c5a01dbe128efee61f54097dbc56..eae1dab787737ccfd3afde8657cabbcbb199e29c 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index 2e875758ce0d2118846459f59beeead5f9491243..0448ea4c0f42245a554ad507bf39523de187d428 100644 (file)
@@ -3,6 +3,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       target-fetch-policy: "0 0 0 0 0"
 
 stub-zone:
        name: "."
index fa2bb8274c52e35010bb0ed983585f2676282d11..834fa5c450c0904f81fdd1ffb55a73b99d57f4dd 100644 (file)
@@ -252,6 +252,7 @@ struct dns_msg* val_neg_getmsg(struct val_neg_cache* neg,
 /**** functions exposed for unit test ****/
 /**
  * Insert data into the data tree of a zone
+ * Does not do locking.
  * @param neg: negative cache
  * @param zone: zone to insert into
  * @param nsec: record to insert.
@@ -263,6 +264,7 @@ void neg_insert_data(struct val_neg_cache* neg,
  * Delete a data element from the negative cache.
  * May delete other data elements to keep tree coherent, or
  * only mark the element as 'not in use'.
+ * Does not do locking.
  * @param neg: negative cache.
  * @param el: data element to delete.
  */
@@ -270,6 +272,7 @@ void neg_delete_data(struct val_neg_cache* neg, struct val_neg_data* el);
 
 /**
  * Find the given zone, from the SOA owner name and class
+ * Does not do locking.
  * @param neg: negative cache
  * @param nm: what to look for.
  * @param len: length of nm
@@ -281,6 +284,7 @@ struct val_neg_zone* neg_find_zone(struct val_neg_cache* neg,
 
 /**
  * Create a new zone.
+ * Does not do locking.
  * @param neg: negative cache
  * @param nm: what to look for.
  * @param nm_len: length of name.
@@ -292,6 +296,7 @@ struct val_neg_zone* neg_create_zone(struct val_neg_cache* neg,
 
 /**
  * take a zone into use. increases counts of parents.
+ * Does not do locking.
  * @param zone: zone to take into use.
  */
 void val_neg_zone_take_inuse(struct val_neg_zone* zone);