]> granicus.if.org Git - pdns/commitdiff
make labelReverse properly turn '.' into ' ' to maintain DNSSEC canonical ordering
authorBert Hubert <bert.hubert@netherlabs.nl>
Fri, 30 Apr 2010 20:47:12 +0000 (20:47 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Fri, 30 Apr 2010 20:47:12 +0000 (20:47 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1591 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/misc.cc

index bedd5aaa1cdfcabe8e82639c63e614945459b686..a85887e71c03f11494a3f02ab12e20f023d13bbe 100644 (file)
@@ -628,15 +628,20 @@ string labelReverse(const std::string& qname)
   if(qname.empty())
     return qname;
 
+
+  bool dotName = qname.find('.') != string::npos;
+
   vector<string> labels;
-  stringtok(labels, qname, ".");
+  stringtok(labels, qname, ". ");
   if(labels.size()==1)
     return qname;
 
+
+
   string ret;
   for(vector<string>::const_reverse_iterator iter = labels.rbegin(); iter != labels.rend(); ++iter) {
     if(iter != labels.rbegin())
-      ret.append(1,'.');
+      ret.append(1, dotName ? ' ' : '.');
     ret+=*iter;
   }
   return ret;