From 21dd5918a92ad373bf6e1778439b348da82b5984 Mon Sep 17 00:00:00 2001 From: bert hubert Date: Fri, 29 Jan 2016 13:29:44 +0100 Subject: [PATCH] rectify-zone if required in edit-zone, clarify message about absolute paths, clarify error if editor not found --- pdns/pdnsutil.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pdns/pdnsutil.cc b/pdns/pdnsutil.cc index f6b2071eba..a3c1ec66d4 100644 --- a/pdns/pdnsutil.cc +++ b/pdns/pdnsutil.cc @@ -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; } -- 2.47.2