ttl2=$(awk '/"A" "short" "ttl"/ { print $2 }' dig.out.2.${n})
sleep 1
# check that prefetch occurred;
-# note that only one record is prefetched, which is the TXT record in this case,
+# note that only one record is prefetched, which is the AAAA record in this case,
# because of the order of the records in the cache
dig_with_opts @10.53.0.5 fetchall.tld any >dig.out.3.${n} || ret=1
-ttl3=$(awk '/"A" "short" "ttl"/ { print $2 }' dig.out.3.${n})
+ttl3=$(awk '/::1/ { print $2 }' dig.out.3.${n})
test "${ttl3:-0}" -gt "${ttl2:-1}" || ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi
status=$((status + ret))
static bool
cname_and_other_data(dns_rbtnode_t *node, rbtdb_serial_t serial) {
rdatasetheader_t *header, *header_next;
- bool cname, other_data;
+ bool cname = false, other_data = false;
dns_rdatatype_t rdtype;
/*
/*
* Look for CNAME and "other data" rdatasets active in our version.
*/
- cname = false;
- other_data = false;
for (header = node->data; header != NULL; header = header_next) {
header_next = header->next;
+ if (!prio_type(header->type)) {
+ /*
+ * CNAME is in the priority list, so if we are done
+ * with the priority list, we know there will not be
+ * CNAME, so we are safe to skip the rest of the types.
+ */
+ return (false);
+ }
if (header->type == dns_rdatatype_cname) {
/*
* Look for an active extant CNAME.
}
}
}
- }
-
- if (cname && other_data) {
- return (true);
+ if (cname && other_data) {
+ return (true);
+ }
}
return (false);