]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3332. [bug] Re-use cached DS rrsets if possible. [RT 29446]
authorMark Andrews <marka@isc.org>
Thu, 7 Jun 2012 03:00:00 +0000 (13:00 +1000)
committerMark Andrews <marka@isc.org>
Thu, 7 Jun 2012 03:00:00 +0000 (13:00 +1000)
CHANGES
lib/dns/rbtdb.c

diff --git a/CHANGES b/CHANGES
index 3539b355b7cdab103a18695221e7ed415b931d2a..79046aa6f8707593e16050e399c22b17c0a8bdf8 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+3332.  [bug]           Re-use cached DS rrsets if possible. [RT 29446]
+
 3331.  [security]      dns_rdataslab_fromrdataset could produce bad
                        rdataslabs. [RT #29644]
 
index 9478ef946d886d4a17fc977fd36f90efc689d15a..0db863d40adec4cccc3d797b2cef415f83a3cd96 100644 (file)
@@ -112,6 +112,8 @@ typedef isc_uint32_t                    rbtdb_rdatatype_t;
                RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig, dns_rdatatype_cname)
 #define RBTDB_RDATATYPE_SIGDNAME \
                RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig, dns_rdatatype_dname)
+#define RBTDB_RDATATYPE_SIGDDS \
+               RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig, dns_rdatatype_ds)
 #define RBTDB_RDATATYPE_NCACHEANY \
                RBTDB_RDATATYPE_VALUE(0, dns_rdatatype_any)
 
@@ -5754,7 +5756,9 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
                }
                if (IS_CACHE(rbtdb) && header->rdh_ttl > now &&
                    (header->type == dns_rdatatype_a ||
-                    header->type == dns_rdatatype_aaaa) &&
+                    header->type == dns_rdatatype_aaaa ||
+                    header->type == dns_rdatatype_ds ||
+                    header->type == RBTDB_RDATATYPE_SIGDDS) &&
                    !header_nx && !newheader_nx &&
                    header->trust >= newheader->trust &&
                    dns_rdataslab_equal((unsigned char *)header,