From: Peter van Dijk Date: Mon, 11 Sep 2017 15:30:02 +0000 (+0200) Subject: be more specific about trailing dot handling, fixes #5673 X-Git-Tag: rec-4.1.0-rc1~45^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=65bf25b9158d083dd183cb0a356be48b06d5e31a;p=pdns be more specific about trailing dot handling, fixes #5673 --- diff --git a/pdns/dnsrecords.cc b/pdns/dnsrecords.cc index be974e0d4..ac3bfd3d9 100644 --- a/pdns/dnsrecords.cc +++ b/pdns/dnsrecords.cc @@ -45,15 +45,26 @@ void DNSResourceRecord::setContent(const string &cont) { string DNSResourceRecord::getZoneRepresentation(bool noDot) const { ostringstream ret; + vector parts; + string last; + switch(qtype.getCode()) { case QType::SRV: case QType::MX: + stringtok(parts, content); + last = *parts.rbegin(); + ret << content; + if (last == ".") + break; + if (*(last.rbegin()) != '.' && !noDot) + ret << "."; + break; case QType::CNAME: case QType::DNAME: case QType::NS: case QType::PTR: - if (*(content.rbegin()) != '.') { - ret<