]> granicus.if.org Git - pdns/commitdiff
pdnsutil: Use new domain in b2bmigrate
authorAki Tuomi <cmouse@cmouse.fi>
Tue, 1 May 2018 18:46:55 +0000 (21:46 +0300)
committerAki Tuomi <cmouse@cmouse.fi>
Tue, 1 May 2018 18:46:55 +0000 (21:46 +0300)
pdns/pdnsutil.cc

index 7963a30cc63d2aa8fa94e295abbfb9f2a4174639..59f5955b0ab2a5dcc115b7978ac3eb423e056b5e 100644 (file)
@@ -3099,12 +3099,14 @@ try
     // iterate zones
     for(const DomainInfo& di: domains) {
       size_t nr,nc,nm,nk;
+      DomainInfo di_new;
       DNSResourceRecord rr;
       cout<<"Processing '"<<di.zone<<"'"<<endl;
       // create zone
       if (!tgt->createDomain(di.zone)) throw PDNSException("Failed to create zone");
-      tgt->setKind(di.zone, di.kind);
-      tgt->setAccount(di.zone,di.account);
+      if (!tgt->getDomainInfo(di.zone, di_new)) throw PDNSException("Failed to create zone");
+      tgt->setKind(di_new.zone, di.kind);
+      tgt->setAccount(di_new.zone,di.account);
       string masters="";
       bool first = true;
       for(const auto& master: di.masters) {
@@ -3113,11 +3115,12 @@ try
         first = false;
         masters += master.toStringWithPortExcept(53);
       }
-      tgt->setMaster(di.zone, masters);
+      tgt->setMaster(di_new.zone, masters);
       // move records
       if (!src->list(di.zone, di.id, true)) throw PDNSException("Failed to list records");
       nr=0;
       while(src->get(rr)) {
+        rr.domain_id = di_new.id;
         if (!tgt->feedRecord(rr, DNSName())) throw PDNSException("Failed to feed record");
         nr++;
       }
@@ -3126,6 +3129,7 @@ try
       if (src->listComments(di.id)) {
         Comment c;
         while(src->getComment(c)) {
+          c.domain_id = di_new.id;
           tgt->feedComment(c);
           nc++;
         }