]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2729. [func] When constructing a CNAME from a DNAME use the DNAME
authorMark Andrews <marka@isc.org>
Tue, 27 Oct 2009 22:45:07 +0000 (22:45 +0000)
committerMark Andrews <marka@isc.org>
Tue, 27 Oct 2009 22:45:07 +0000 (22:45 +0000)
                        TTL. [RT #20451]

CHANGES
bin/named/query.c

diff --git a/CHANGES b/CHANGES
index a9ee5a5faf82b44988977b1814da25714028e252..2c749a1a337067859187f6b7981116b024903a72 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2729.  [func]          When constructing a CNAME from a DNAME use the DNAME
+                       TTL. [RT #20451]
+
 2723.  [bug]           isc_base32_totext(), isc_base32hex_totext(), and
                        isc_base64_totext(), didn't always mark regions of
                        memory as fully consumed after conversion.  [RT #20445]
index cbb4a8c9a7274542803bc25cef612b1649dd198e..e2c3948f407d239ca9b0b00403fdc49d3f2c4c72 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: query.c,v 1.313.20.10 2009/09/14 23:19:36 marka Exp $ */
+/* $Id: query.c,v 1.313.20.11 2009/10/27 22:45:07 marka Exp $ */
 
 /*! \file */
 
@@ -2240,7 +2240,8 @@ query_addns(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version) {
 
 static inline isc_result_t
 query_addcnamelike(ns_client_t *client, dns_name_t *qname, dns_name_t *tname,
-                  dns_trust_t trust, dns_name_t **anamep, dns_rdatatype_t type)
+                  dns_rdataset_t *dname, dns_name_t **anamep,
+                  dns_rdatatype_t type)
 {
        dns_rdataset_t *rdataset;
        dns_rdatalist_t *rdatalist;
@@ -2276,7 +2277,7 @@ query_addcnamelike(ns_client_t *client, dns_name_t *qname, dns_name_t *tname,
        rdatalist->type = type;
        rdatalist->covers = 0;
        rdatalist->rdclass = client->message->rdclass;
-       rdatalist->ttl = 0;
+       rdatalist->ttl = dname->ttl;
 
        dns_name_toregion(tname, &r);
        rdata->data = r.base;
@@ -2288,7 +2289,7 @@ query_addcnamelike(ns_client_t *client, dns_name_t *qname, dns_name_t *tname,
        ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
        RUNTIME_CHECK(dns_rdatalist_tordataset(rdatalist, rdataset)
                      == ISC_R_SUCCESS);
-       rdataset->trust = trust;
+       rdataset->trust = dname->trust;
 
        query_addrrset(client, anamep, &rdataset, NULL, NULL,
                       DNS_SECTION_ANSWER);
@@ -4599,7 +4600,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
                 */
                dns_name_init(tname, NULL);
                (void)query_addcnamelike(client, client->query.qname, fname,
-                                        trdataset->trust, &tname,
+                                        trdataset, &tname,
                                         dns_rdatatype_cname);
                if (tname != NULL)
                        dns_message_puttempname(client->message, &tname);