From: bert hubert Date: Mon, 18 Apr 2016 10:10:44 +0000 (+0200) Subject: make pdnsutil edit-zone operate on a 'prettysorted' zone in canonical order, except... X-Git-Tag: dnsdist-1.0.0~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=518b1adcbdc4d29ce7d32dc5a2418288dfb1304f;p=thirdparty%2Fpdns.git make pdnsutil edit-zone operate on a 'prettysorted' zone in canonical order, except that SOA always comes on top --- diff --git a/pdns/pdnsutil.cc b/pdns/pdnsutil.cc index bd123d28c2..b664268918 100644 --- a/pdns/pdnsutil.cc +++ b/pdns/pdnsutil.cc @@ -923,6 +923,16 @@ int clearZone(DNSSECKeeper& dk, const DNSName &zone) { return EXIT_SUCCESS; } +bool prettyDROrder(const DNSRecord& a, const DNSRecord& b) +{ + if(a.d_type == QType::SOA && b.d_type != QType::SOA) + return true; + if(a.d_type != QType::SOA && b.d_type == QType::SOA) + return false; + + return agetZoneRepresentation(true)< diff; + map, string> changed; - set_difference(pre.cbegin(), pre.cend(), post.cbegin(), post.cend(), back_inserter(diff)); + set_difference(pre.cbegin(), pre.cend(), post.cbegin(), post.cend(), back_inserter(diff), prettyDROrder); for(const auto& d : diff) { ostringstream str; str<<'-'<< d.d_name <<" "<getZoneRepresentation(true)<