From: Peter van Dijk Date: Wed, 17 Jun 2020 13:11:05 +0000 (+0200) Subject: pdnsutil: make sure we let all destructors run. Fixes #4973 X-Git-Tag: dnsdist-1.5.0-rc4~22^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F9253%2Fhead;p=thirdparty%2Fpdns.git pdnsutil: make sure we let all destructors run. Fixes #4973 --- diff --git a/pdns/pdnsutil.cc b/pdns/pdnsutil.cc index 7287bb4423..206c70b581 100644 --- a/pdns/pdnsutil.cc +++ b/pdns/pdnsutil.cc @@ -1810,7 +1810,7 @@ static bool secureZone(DNSSECKeeper& dk, const DNSName& zone) return true; } -static void testSchema(DNSSECKeeper& dk, const DNSName& zone) +static int testSchema(DNSSECKeeper& dk, const DNSName& zone) { cout<<"Note: test-schema will try to create the zone, but it will not remove it."<get(rrthrowaway)) // should not touch rr but don't assume anything { cout<<"Expected one record, got multiple, aborting"<getDomainInfo(zone, di); if(di.notified_serial != 500) { cout<<"[-] Set serial 500, got back "<getDomainInfo(zone, di); if(di.notified_serial != 2147484148) { cout<<"[-] Set serial 2147484148, got back "<& values, bool clobber) { @@ -2176,8 +2178,7 @@ try cerr << "Syntax: pdnsutil test-schema ZONE"< 1 ? cmds[1] : ""); } else if (cmds[0] == "check-all-zones") { bool exitOnError = ((cmds.size() >= 2 ? cmds[1] : "") == "exit-on-error"); - exit(checkAllZones(dk, exitOnError)); + return checkAllZones(dk, exitOnError); } else if (cmds[0] == "list-all-zones") { if (cmds.size() > 2) { @@ -2398,13 +2399,13 @@ try bits = pdns_stou(cmds[n]); } else { cerr<<"Unknown algorithm, key flag or size '"< 2 ? DNSName(cmds[2]): DNSName())); + return createZone(DNSName(cmds[1]), cmds.size() > 2 ? DNSName(cmds[2]): DNSName()); } else if(cmds[0] == "create-slave-zone") { if(cmds.size() < 3 ) { cerr<<"Syntax: pdnsutil create-slave-zone ZONE master-ip [master-ip..]"< 2) { @@ -2516,7 +2517,7 @@ try return 0; } string zname = (cmds.size() == 2) ? cmds[1] : "all"; - exit(listKeys(zname, dk)); + return listKeys(zname, dk); } else if(cmds[0] == "load-zone") { if(cmds.size() < 3) { @@ -2597,7 +2598,7 @@ try } DNSName zone(cmds[1]); auto kind=DomainInfo::stringToKind(cmds[2]); - exit(setZoneKind(zone, kind)); + return setZoneKind(zone, kind); } else if(cmds[0]=="set-account") { if(cmds.size() != 3) { @@ -2605,7 +2606,7 @@ try return 0; } DNSName zone(cmds[1]); - exit(setZoneAccount(zone, cmds[2])); + return setZoneAccount(zone, cmds[2]); } else if(cmds[0]=="set-nsec3") { if(cmds.size() < 2) { @@ -2746,7 +2747,7 @@ try else if(cmds[0]=="export-zone-key") { if(cmds.size() < 3) { cerr<<"Syntax: pdnsutil export-zone-key ZONE KEY-ID"<