]> granicus.if.org Git - pdns/commitdiff
rectify-zone if required in edit-zone, clarify message about absolute paths, clarify...
authorbert hubert <bert.hubert@netherlabs.nl>
Fri, 29 Jan 2016 12:29:44 +0000 (13:29 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Fri, 29 Jan 2016 12:29:44 +0000 (13:29 +0100)
pdns/pdnsutil.cc

index f6b2071eba6e01120d0a9c32c2257ff98d8a3d52..a3c1ec66d4e0e7b0c589823498844f766f45c432 100644 (file)
@@ -961,7 +961,7 @@ int editZone(DNSSECKeeper& dk, const DNSName &zone) {
   {
     if(tmpfd < 0 && (tmpfd=open(tmpnam, O_WRONLY, 0600)) < 0)
       unixDie("Error reopening temporary file "+string(tmpnam));
-    string header("; Warning - all zone names in this file are ABSOLUTE!\n$ORIGIN .\n");
+    string header("; Warning - every name in this file is ABSOLUTE!\n$ORIGIN .\n");
     if(write(tmpfd, header.c_str(), header.length()) < 0)
       unixDie("Writing zone to temporary file");
     while(di.backend->get(rr)) {
@@ -983,8 +983,9 @@ int editZone(DNSSECKeeper& dk, const DNSName &zone) {
   if(gotoline > 0)
     cmdline+="+"+std::to_string(gotoline)+" ";
   cmdline += tmpnam;
-  if(system(cmdline.c_str()) < 0) {
-    unixDie("Editing file with: "+cmdline);
+  int err=system(cmdline.c_str());
+  if(err) {
+    unixDie("Editing file with: '"+cmdline+"', perhaps set EDITOR variable");
   }
   cmdline.clear();
   stat(tmpnam,&statafter);
@@ -1071,6 +1072,9 @@ int editZone(DNSSECKeeper& dk, const DNSName &zone) {
     }
     di.backend->replaceRRSet(di.id, c.first, QType(c.second), vrr);
   }
+  if(dk.isSecuredZone(zone)) {
+    rectifyZone(dk, zone);
+  }
   return 0;
 }