int PacketHandler::trySuperMasterSynchronous(DNSPacket *p)
{
+ DomainInfo di;
Resolver::res_t nsset;
try {
Resolver resolver;
return RCode::ServFail;
}
+ if (B.getDomainInfo(p->qdomain, di)) {
+ // maybe it is listed as master already
+ BOOST_FOREACH(string& master, di.masters) {
+ if (master == p->getRemote())
+ return RCode::NoError; // is already a master for this zone
+ }
+ }
+
string account;
DNSBackend *db;
if(!B.superMasterBackend(p->getRemote(), p->qdomain, nsset, &account, &db)) {