From: Pieter Lexis Date: Fri, 1 Mar 2019 13:59:00 +0000 (+0100) Subject: dnsrecords: make DNAME mimic CNAME X-Git-Tag: rec-4.2.0-beta1~6^2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c3491dd68e99df9f78ab2fc0bf2d29357af19158;p=thirdparty%2Fpdns.git dnsrecords: make DNAME mimic CNAME --- diff --git a/pdns/dnsrecords.hh b/pdns/dnsrecords.hh index d9f5a18ec4..4258f5b26f 100644 --- a/pdns/dnsrecords.hh +++ b/pdns/dnsrecords.hh @@ -272,6 +272,9 @@ class DNAMERecordContent : public DNSRecordContent { public: includeboilerplate(DNAME) + DNAMERecordContent(const DNSName& content) : d_content(content){} + DNSName getTarget() const { return d_content; } +private: DNSName d_content; }; diff --git a/pdns/packethandler.cc b/pdns/packethandler.cc index 72888474af..726b6c8802 100644 --- a/pdns/packethandler.cc +++ b/pdns/packethandler.cc @@ -331,7 +331,7 @@ vector PacketHandler::getBestDNAMESynth(DNSPacket *p, SOAData& sd ret.push_back(rr); // put in the original rr.dr.d_type = QType::CNAME; rr.dr.d_name = prefix + rr.dr.d_name; - rr.dr.d_content = std::make_shared(CNAMERecordContent(prefix + getRR(rr.dr)->d_content)); + rr.dr.d_content = std::make_shared(CNAMERecordContent(prefix + getRR(rr.dr)->getTarget())); rr.auth = 0; // don't sign CNAME target= getRR(rr.dr)->getTarget(); ret.push_back(rr);