]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
make edit-zone catch zoneparser exceptions as well 6859/head
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 17 Aug 2018 11:29:04 +0000 (13:29 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 17 Aug 2018 11:29:04 +0000 (13:29 +0200)
pdns/pdnsutil.cc

index 2df72901ff56b4c4552dcfc37ed07362af77123b..c275f71b9006c8019ee2811b080bc543f7742b4e 100644 (file)
@@ -920,19 +920,20 @@ int editZone(DNSSECKeeper& dk, const DNSName &zone) {
   ZoneParserTNG zpt(tmpnam, g_rootdnsname);
   DNSResourceRecord zrr;
   map<pair<DNSName,uint16_t>, vector<DNSRecord> > grouped;
-  while(zpt.get(zrr)) {
-    try {
-      DNSRecord dr(zrr);
-      post.push_back(dr);
-      grouped[{dr.d_name,dr.d_type}].push_back(dr);
-    }
-    catch(std::exception& e) {
-      cerr<<"Problem "<<e.what()<<" "<<zpt.getLineOfFile()<<endl;
-      auto fnum = zpt.getLineNumAndFile();
-      gotoline = fnum.second;
-      goto reAsk;
+  try {
+    while(zpt.get(zrr)) {
+        DNSRecord dr(zrr);
+        post.push_back(dr);
+        grouped[{dr.d_name,dr.d_type}].push_back(dr);
     }
   }
+  catch(std::exception& e) {
+    cerr<<"Problem: "<<e.what()<<" "<<zpt.getLineOfFile()<<endl;
+    auto fnum = zpt.getLineNumAndFile();
+    gotoline = fnum.second;
+    goto reAsk;
+  }
+
   sort(post.begin(), post.end(), DNSRecord::prettyCompare);
   checkrr.clear();