cerr << "Zone '" << zone << "' exists already, replacing contents" << endl;
}
else {
+ if ((B.getCapabilities() & DNSBackend::CAP_CREATE) == 0) {
+ cerr << "None of the configured backends support zone creation." << endl;
+ cerr << "Zone '" << zone << "' was not created." << endl;
+ return EXIT_FAILURE;
+ }
cerr<<"Creating '"<<zone<<"'"<<endl;
B.createDomain(zone, DomainInfo::Native, vector<ComboAddress>(), "");
if(!B.getDomainInfo(zone, di)) {
- cerr << "Zone '" << zone << "' was not created - perhaps backend (" << ::arg()["launch"] << ") does not support storing new zones." << endl;
+ cerr << "Zone '" << zone << "' was not created." << endl;
return EXIT_FAILURE;
}
}
cerr << "Zone '" << zone << "' exists already" << endl;
return EXIT_FAILURE;
}
+ if ((B.getCapabilities() & DNSBackend::CAP_CREATE) == 0) {
+ cerr << "None of the configured backends support zone creation." << endl;
+ cerr << "Zone '" << zone << "' was not created." << endl;
+ return EXIT_FAILURE;
+ }
DNSResourceRecord rr;
rr.qname = zone;
cerr << "Zone '" << zone << "' exists already" << endl;
return EXIT_FAILURE;
}
+ if ((B.getCapabilities() & DNSBackend::CAP_CREATE) == 0) {
+ cerr << "None of the configured backends support zone creation." << endl;
+ cerr << "Zone '" << zone << "' was not created." << endl;
+ return EXIT_FAILURE;
+ }
vector<ComboAddress> primaries;
for (unsigned i=2; i < cmds.size(); i++) {
primaries.emplace_back(cmds.at(i), 53);
cerr << "Source backend does not support listing zone contents." << endl;
return 1;
}
+ if ((tgt->getCapabilities() & DNSBackend::CAP_CREATE) == 0) {
+ cerr << "Target backend does not support zone creation." << endl;
+ return 1;
+ }
+
cout<<"Moving zone(s) from "<<src->getPrefix()<<" to "<<tgt->getPrefix()<<endl;
vector<DomainInfo> domains;
return std::any_of(backends.begin(), backends.end(), [](std::unique_ptr<DNSBackend>& backend) { return backend->hasCreatedLocalFiles(); });
}
+unsigned int UeberBackend::getCapabilities()
+{
+ unsigned int capabilities{0};
+ for (auto& backend : backends) {
+ capabilities |= backend->getCapabilities();
+ }
+ return capabilities;
+}
+
AtomicCounter UeberBackend::handle::instances(0);
UeberBackend::handle::handle()