]> granicus.if.org Git - pdns/commitdiff
don't crash if the dnsseckeeper returns unexpected results
authorBert Hubert <bert.hubert@netherlabs.nl>
Sat, 1 Jan 2011 21:21:30 +0000 (21:21 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Sat, 1 Jan 2011 21:21:30 +0000 (21:21 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1783 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/pdnssec.cc

index 0c677c44e7dd3ba8720739b46caeba4823b38846..d7e2a9d9a48e92261bfbc151b787aec3ec81c7ca 100644 (file)
@@ -41,7 +41,7 @@ void loadMainConfig()
     strcmp(pietje+1,"@@SYSCONFDIR@@:") ? pietje+strlen("@@SYSCONFDIR@@:")+1 : SYSCONFDIR;
   
   ::arg().set("launch","Which backends to launch");
-  
+  ::arg().set("dnssec","if we should do dnssec")="true";
   ::arg().set("config-name","Name of this virtual configuration - will rename the binary image")="";
   ::arg().setCmd("help","Provide a helpful message");
   //::arg().laxParse(argc,argv);
@@ -90,8 +90,7 @@ void loadMainConfig()
 
 void orderZone(DNSSECKeeper& dk, const std::string& zone)
 {
-  loadMainConfig();
-  reportAllTypes();  
+    
   UeberBackend* B = new UeberBackend("default");
   SOAData sd;
   
@@ -195,6 +194,8 @@ try
     return 0;
   }
 
+  loadMainConfig();
+  reportAllTypes();
   DNSSECKeeper dk(g_vm["key-repository"].as<string>());
 
   if(cmds[0] == "order-zone") {
@@ -226,7 +227,6 @@ try
       cerr<<"Zone has NSEC semantics"<<endl;
     else
       cerr<<"Zone has hashed NSEC3 semantics, configuration: "<<ns3pr.getZoneRepresentation()<<endl;
-
     
     DNSSECKeeper::keyset_t keyset=dk.getKeys(zone);
 
@@ -284,6 +284,7 @@ try
 
     if(!dk.haveActiveKSKFor(zone, &dpk)) {
       cerr << "This should not happen, still no key!" << endl;
+      return 0;
     }
     cout<<"Created KSK with tag "<<dpk.getDNSKEY().getTag()<<endl;