-1.6.9
+1.6.10
+ * Serial-arithmetic for the inception and expiration fields of a RRSIG
+ and correctly converting them to broken-out time information.
+
+1.6.9 2011-03-16
* Fix creating NSEC(3) bitmaps: make array size 65536,
don't add doubles.
* Fix printout of escaped binary in TXT records.
int verbosity = 3;
-/* returns 1 if the list is empty, or if there are only ns rrs in the
- * list, 0 otherwise */
-static int
-only_ns_in_rrsets(ldns_dnssec_rrsets *rrsets) {
- ldns_dnssec_rrsets *cur_rrset = rrsets;
-
- while (cur_rrset) {
- if (cur_rrset->type != LDNS_RR_TYPE_NS) {
- return 0;
- }
- cur_rrset = cur_rrset->next;
- }
- return 1;
-}
-
static int
zone_is_nsec3_optout(ldns_rbtree_t *zone_nodes)
{
return false;
}
+/* returns 1 if the list is empty, or if there are only ns or glue rrs in the
+ * list, 0 otherwise */
+static int
+only_ns_and_glues_in_rrsets(ldns_dnssec_name *name,
+ ldns_rr_list *glue_rrs
+)
+{
+ ldns_dnssec_rrsets *cur_rrset = name->rrsets;
+
+ while (cur_rrset) {
+ if (cur_rrset->type != LDNS_RR_TYPE_NS &&
+ !ldns_rr_list_contains_name(glue_rrs, name->name)
+ ) {
+ return 0;
+ }
+ cur_rrset = cur_rrset->next;
+ }
+ return 1;
+}
+
static void
print_type(ldns_rr_type type)
{
} else {
/* todo; do this once and cache result? */
if (zone_is_nsec3_optout(zone_nodes) &&
- only_ns_in_rrsets(name->rrsets)) {
+ only_ns_and_glues_in_rrsets(name, glue_rrs)) {
/* ok, no problem, but we need to remember to check
* whether the chain does not actually point to this
* name later */
a = ldns_rr_list_rr(addr, j);
dname_a = ldns_rr_owner(a);
- if (ldns_dname_is_subdomain(dname_a, ns_owner)) {
+ if (ldns_dname_is_subdomain(dname_a, ns_owner) ||
+ ldns_dname_compare(dname_a, ns_owner) == 0) {
/* GLUE! */
if (!ldns_rr_list_push_rr(glue, a)) goto memory_error;
}