From: Mark Andrews Date: Tue, 27 Oct 2009 22:45:07 +0000 (+0000) Subject: 2729. [func] When constructing a CNAME from a DNAME use the DNAME X-Git-Tag: v9.6.1-P1^2^3~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c363a13c5017ea95ae377723e46d88276d8ef3ca;p=thirdparty%2Fbind9.git 2729. [func] When constructing a CNAME from a DNAME use the DNAME TTL. [RT #20451] --- diff --git a/CHANGES b/CHANGES index a9ee5a5faf8..2c749a1a337 100644 --- 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] diff --git a/bin/named/query.c b/bin/named/query.c index cbb4a8c9a72..e2c3948f407 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -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);