]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsrecords: make DNAME mimic CNAME
authorPieter Lexis <pieter.lexis@powerdns.com>
Fri, 1 Mar 2019 13:59:00 +0000 (14:59 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Fri, 1 Mar 2019 13:59:00 +0000 (14:59 +0100)
pdns/dnsrecords.hh
pdns/packethandler.cc

index d9f5a18ec4740107e7865e93903d19cc8fee8c47..4258f5b26f663b27c7d4456dc2dcb6b2c5be39eb 100644 (file)
@@ -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;
 };
 
index 72888474af8ceaf1711e7fbd5214d1453730ebfb..726b6c88024eb244782f939888b9215ce298401b 100644 (file)
@@ -331,7 +331,7 @@ vector<DNSZoneRecord> 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>(CNAMERecordContent(prefix + getRR<DNAMERecordContent>(rr.dr)->d_content));
+      rr.dr.d_content = std::make_shared<CNAMERecordContent>(CNAMERecordContent(prefix + getRR<DNAMERecordContent>(rr.dr)->getTarget()));
       rr.auth = 0; // don't sign CNAME
       target= getRR<CNAMERecordContent>(rr.dr)->getTarget();
       ret.push_back(rr);