]> granicus.if.org Git - pdns/commitdiff
be more specific about trailing dot handling, fixes #5673
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 11 Sep 2017 15:30:02 +0000 (17:30 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 11 Sep 2017 15:30:02 +0000 (17:30 +0200)
pdns/dnsrecords.cc

index be974e0d463b15d71899d7f8a139dd1b4fc56298..ac3bfd3d989f036656c1dd24b11764ea300f7b95 100644 (file)
@@ -45,15 +45,26 @@ void DNSResourceRecord::setContent(const string &cont) {
 
 string DNSResourceRecord::getZoneRepresentation(bool noDot) const {
   ostringstream ret;
+  vector<string> 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<<content;
+      ret<<content;
+      if (content != ".") {
         if(!noDot)
           ret<<".";
       }