From 65bf25b9158d083dd183cb0a356be48b06d5e31a Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Mon, 11 Sep 2017 17:30:02 +0200 Subject: [PATCH] be more specific about trailing dot handling, fixes #5673 --- pdns/dnsrecords.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pdns/dnsrecords.cc b/pdns/dnsrecords.cc index be974e0d46..ac3bfd3d98 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<