]> granicus.if.org Git - pdns/commitdiff
explicitly print the new rrset which should be.. educational
authorbert hubert <bert.hubert@netherlabs.nl>
Mon, 25 Jan 2016 07:13:55 +0000 (08:13 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Mon, 25 Jan 2016 07:13:55 +0000 (08:13 +0100)
pdns/pdnsutil.cc

index b8300bd92adebebcc3f492589f598455df2da18f..902ccb489abe12b504c6648e372e89a9e5f98a6f 100644 (file)
@@ -1002,11 +1002,6 @@ int addOrReplaceRecord(bool addOrReplace, const vector<string>& cmds) {
     else rr.ttl = ::arg().asNum("default-ttl");
   }
 
-  for(auto i = contentStart ; i < cmds.size() ; ++i) {
-    rr.content = DNSRecordContent::mastermake(rr.qtype.getCode(), 1, cmds[i])->getZoneRepresentation(true);
-    newrrs.push_back(rr);
-  }
-
   B.lookup(QType(QType::ANY), rr.qname, 0, di.id);
   bool found=false;
   if(rr.qtype.getCode() == QType::CNAME) { // this will save us SO many questions
@@ -1031,8 +1026,23 @@ int addOrReplaceRecord(bool addOrReplace, const vector<string>& cmds) {
     }
   }
 
-  di.backend->replaceRRSet(di.id, name, rr.qtype, newrrs);
+  if(!addOrReplace) {
+    cout<<"Current records for "<<rr.qname.toString()<<" IN "<<rr.qtype.getName()<<" will be replaced"<<endl;
+  }
+  for(auto i = contentStart ; i < cmds.size() ; ++i) {
+    rr.content = DNSRecordContent::mastermake(rr.qtype.getCode(), 1, cmds[i])->getZoneRepresentation(true);
+
+    newrrs.push_back(rr);
+  }
 
+  
+  di.backend->replaceRRSet(di.id, name, rr.qtype, newrrs);
+  // need to be explicit to bypass the ueberbackend cache!
+  di.backend->lookup(rr.qtype, name, 0, di.id);
+  cout<<"New rrset:"<<endl;
+  while(di.backend->get(rr)) {
+    cout<<rr.qname.toString()<<" IN "<<rr.qtype.getName()<<" "<<rr.ttl<<" "<<rr.content<<endl;      
+  }
   return 1;
 }