]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: one query and a huge amount of code down the drain
authorKees Monshouwer <mind04@monshouwer.org>
Thu, 30 Nov 2017 00:53:27 +0000 (01:53 +0100)
committermind04 <mind04@monshouwer.org>
Sat, 31 Mar 2018 21:40:20 +0000 (23:40 +0200)
22 files changed:
modules/bindbackend/bindbackend2.cc
modules/bindbackend/bindbackend2.hh
modules/gmysqlbackend/gmysqlbackend.cc
modules/godbcbackend/godbcbackend.cc
modules/goraclebackend/goraclebackend.cc
modules/gpgsqlbackend/gpgsqlbackend.cc
modules/gsqlite3backend/gsqlite3backend.cc
modules/luabackend/luabackend.hh
modules/luabackend/slave.cc
modules/opendbxbackend/odbxbackend.cc
modules/opendbxbackend/odbxbackend.hh
modules/oraclebackend/oraclebackend.cc
modules/oraclebackend/oraclebackend.hh
modules/remotebackend/httpconnector.cc
modules/remotebackend/remotebackend.cc
modules/remotebackend/remotebackend.hh
modules/remotebackend/test-remotebackend.cc
pdns/backends/gsql/gsqlbackend.cc
pdns/backends/gsql/gsqlbackend.hh
pdns/dnsbackend.hh
pdns/packethandler.cc
regression-tests/backends/godbc_sqlite3-master

index b262a03075323e21b85b210d6796d0982ae7d785..28a5b429555f2deb53d7c3964fa26e50c17a57d8 100644 (file)
@@ -1215,22 +1215,6 @@ bool Bind2Backend::handle::get_list(DNSResourceRecord &r)
   return false;
 }
 
-bool Bind2Backend::isMaster(const DNSName& name, const string &ip)
-{
-  BB2DomainInfo bbd;
-  if(!safeGetBBDomainInfo(name, &bbd))
-    return false;
-
-  if(bbd.d_kind != DomainInfo::Slave)
-    return false;
-
-  for(vector<string>::const_iterator iter = bbd.d_masters.begin(); iter != bbd.d_masters.end(); ++iter)
-    if(*iter==ip)
-      return true;
-  
-  return false;
-}
-
 bool Bind2Backend::superMasterBackend(const string &ip, const DNSName& domain, const vector<DNSResourceRecord>&nsset, string *nameserver, string *account, DNSBackend **db)
 {
   // Check whether we have a configfile available.
index 1f3b5cbd46ac839cfa301699bba3d42ffb99b77f..c85003eefc18214fc33a48e90f28fe6dd4ee6961 100644 (file)
@@ -239,7 +239,6 @@ public:
   void insertRecord(BB2DomainInfo& bbd, const DNSName &qname, const QType &qtype, const string &content, int ttl, const std::string& hashed=string(), bool *auth=0);
   void rediscover(string *status=0) override;
 
-  bool isMaster(const DNSName &name, const string &ip) override;
 
   // for supermaster support
   bool superMasterBackend(const string &ip, const DNSName &domain, const vector<DNSResourceRecord>&nsset, string *nameserver, string *account, DNSBackend **db) override;
index ff75d94ff2aabc9570ea53ab08fb6a5e59277fbb..1d0bed64d5b59505bb855c5b73b56d0215b5fe54 100644 (file)
@@ -94,8 +94,6 @@ public:
     declare(suffix, "remove-empty-non-terminals-from-zone-query", "remove all empty non-terminals from zone", "delete from records where domain_id=? and type is null");
     declare(suffix, "delete-empty-non-terminal-query", "delete empty non-terminal from zone", "delete from records where domain_id=? and name=? and type is null");
 
-    declare(suffix,"master-zone-query","Data", "select master from domains where name=? and type='SLAVE'");
-
     declare(suffix,"info-zone-query","","select id,name,master,last_check,notified_serial,type,account from domains where name=?");
 
     declare(suffix,"info-all-slaves-query","","select id,name,master,last_check from domains where type='SLAVE'");
index b1dff9bafc5c42ea086ed249f4dcedc132fb5a17..9db1f5ff79b6e2837be7f05bc5ac95df9247b5c7 100644 (file)
@@ -81,8 +81,6 @@ public:
     declare(suffix, "remove-empty-non-terminals-from-zone-query", "remove all empty non-terminals from zone", "delete from records where domain_id=? and type is null");
     declare(suffix, "delete-empty-non-terminal-query", "delete empty non-terminal from zone", "delete from records where domain_id=? and name=? and type is null");
 
-    declare(suffix,"master-zone-query","Data", "select master from domains where name=? and type='SLAVE'");
-
     declare(suffix,"info-zone-query","","select id,name,master,last_check,notified_serial,type,account from domains where name=?");
 
     declare(suffix,"info-all-slaves-query","","select id,name,master,last_check from domains where type='SLAVE'");
index a49cea32bbf04a9776177f3d07a162acb7ddca18..6a5d3e756efb0f853f9861939317fda4358159f6 100644 (file)
@@ -100,8 +100,6 @@ public:
     declare(suffix, "remove-empty-non-terminals-from-zone-query", "remove all empty non-terminals from zone", "delete from records where domain_id=:domain_id and type is null");
     declare(suffix, "delete-empty-non-terminal-query", "delete empty non-terminal from zone", "delete from records where domain_id=:domain_id and name=:qname and type is null");
 
-    declare(suffix, "master-zone-query", "Data", "select master from domains where name=:domain and type='SLAVE'");
-
     declare(suffix, "info-zone-query", "","select id,name,master,last_check,notified_serial,type,account from domains where name=:domain");
 
     declare(suffix, "info-all-slaves-query", "","select id,name,master,last_check from domains where type='SLAVE'");
index 5396878b9f3dc5f3717e2375f9ea58c0c1759d20..ef8d05e5f45b39f313d382ed691f1a71dbaebc81 100644 (file)
@@ -101,8 +101,6 @@ public:
     declare(suffix,"remove-empty-non-terminals-from-zone-query", "remove all empty non-terminals from zone", "delete from records where domain_id=$1 and type is null");
     declare(suffix,"delete-empty-non-terminal-query", "delete empty non-terminal from zone", "delete from records where domain_id=$1 and name=$2 and type is null");
 
-    declare(suffix,"master-zone-query","Data", "select master from domains where name=$1 and type='SLAVE'");
-
     declare(suffix,"info-zone-query","","select id,name,master,last_check,notified_serial,type,account from domains where name=$1");
 
     declare(suffix,"info-all-slaves-query","","select id,name,master,last_check from domains where type='SLAVE'");
index 4051f91848eeb949462e8033cb68089abc651f38..9bda9572ffd3d000088a0cccf98e7839e3160e36 100644 (file)
@@ -92,8 +92,6 @@ public:
 
     declare(suffix, "remove-empty-non-terminals-from-zone-query", "remove all empty non-terminals from zone", "delete from records where domain_id=:domain_id and type is null");
     declare(suffix, "delete-empty-non-terminal-query", "delete empty non-terminal from zone", "delete from records where domain_id=:domain_id and name=:qname and type is null");
-    
-    declare(suffix, "master-zone-query", "Data", "select master from domains where name=:domain and type='SLAVE'");
 
     declare(suffix, "info-zone-query", "","select id,name,master,last_check,notified_serial,type,account from domains where name=:domain");
 
index 6d19d084af6ce9d06001e8b670d53a9d68a107bd..d85cf91cacdfdfc2344e5436c2225ad273828009 100644 (file)
@@ -69,7 +69,6 @@ public:
 //  SLAVE BACKEND
 
     bool getDomainInfo(const DNSName& domain, DomainInfo &di, bool getSerial=true) override;
-    bool isMaster(const DNSName& name, const string &ip) override;
     void getUnfreshSlaveInfos(vector<DomainInfo>* domains) override;
     void setFresh(uint32_t id) override;
 
index 22d6aa672c85fde483d07fe9d560f634580427a8..1d61fff00a3b63d537493ea1eef6ce0399a68024 100644 (file)
@@ -36,7 +36,6 @@
    virtual bool feedRecord(const DNSResourceRecord &rr, DNSName &ordername);
 
    virtual bool getDomainInfo(const string &domain, DomainInfo &di);
-   virtual bool isMaster(const string &name, const string &ip);
    virtual void getUnfreshSlaveInfos(vector<DomainInfo>* domains);
    virtual void setFresh(uint32_t id);
 */
@@ -224,40 +223,6 @@ void LUABackend::getUnfreshSlaveInfos(vector<DomainInfo>* domains) {
 
 }
 
-bool LUABackend::isMaster(const DNSName& domain, const string &ip) {
-       
-    if (f_lua_ismaster == 0)
-        return false;
-
-    if (logging)
-       g_log << Logger::Error << backend_name << "(isMaster) BEGIN" << endl;
-
-    lua_rawgeti(lua, LUA_REGISTRYINDEX, f_lua_ismaster);
-
-    lua_pushstring(lua, domain.toString().c_str());
-    lua_pushstring(lua, ip.c_str());
-    
-    if(lua_pcall(lua, 2, 1, f_lua_exec_error) != 0) {
-        string e = backend_name + lua_tostring(lua, -1);
-        lua_pop(lua, 1);
-
-        throw runtime_error(e);
-    }
-
-    size_t returnedwhat = lua_type(lua, -1);
-    bool ok = false;
-    
-    if (returnedwhat == LUA_TBOOLEAN)
-        ok = lua_toboolean(lua, -1);
-    
-    lua_pop(lua, 1);
-    
-    if (logging)
-       g_log << Logger::Info << backend_name << "(isMaster) END" << endl;
-
-    return ok;
-}
-
 bool LUABackend::getDomainInfo(const DNSName&domain, DomainInfo &di, bool getSerial) {
     if (f_lua_getdomaininfo == 0)
         return false;
index 7b23b47b61a25eca84eee74e6be2294946920c30..8187fa58a1147aaf1ea49e3502ee4bccd897758c 100644 (file)
@@ -496,42 +496,6 @@ void OdbxBackend::setNotified( uint32_t domain_id, uint32_t serial )
 
 
 
-bool OdbxBackend::isMaster( const DNSName& domain, const string& ip )
-{
-        try
-        {
-               DLOG( g_log.log( m_myname + " isMaster()", Logger::Debug ) );
-
-               string stmt = getArg( "sql-master" );
-               string& stmtref = strbind( ":name", escape( domain.makeLowerCase().toStringRootDot(), READ ), stmt );
-
-               if( !execStmt( stmtref.c_str(), stmtref.size(), READ ) ) { return false; }
-               if( !getRecord( READ ) ) { return false; }
-
-               do
-               {
-                       if( odbx_field_value( m_result, 0 ) != NULL )
-                       {
-                               if( !strcmp( odbx_field_value( m_result, 0 ), ip.c_str() ) )
-                               {
-                                       while( getRecord( READ ) );
-                                       return true;
-                               }
-                       }
-               }
-               while( getRecord( READ ) );
-        }
-        catch ( std::exception& e )
-        {
-               g_log.log( m_myname + " isMaster: Caught STL exception - " + e.what(),  Logger::Error );
-               return false;
-        }
-
-        return false;
-}
-
-
-
 void OdbxBackend::getUnfreshSlaveInfos( vector<DomainInfo>* unfresh )
 {
         try
index 08d1c44c41f3d7a163ec47048091b9f34da97cb6..8b8a67692985b921e70e5706dbb0207f5a253a79 100644 (file)
@@ -85,7 +85,6 @@ public:
         bool commitTransaction() override;
         bool abortTransaction() override;
 
-        bool isMaster( const DNSName& domain, const string& ip ) override;
         bool getDomainInfo( const DNSName& domain, DomainInfo& di, bool getSerial=true ) override;
         bool feedRecord( const DNSResourceRecord& rr, const DNSName& ordername ) override;
         bool createSlaveDomain( const string& ip, const DNSName& domain, const string &nameserver, const string& account ) override;
index fd4e8d5e0f849b15dfffae7dd21f1116cc44a7cd..98ca2b16aea437b64966cf5e7e3f2186bfde25b6 100644 (file)
@@ -125,12 +125,6 @@ static const char *zoneMastersQueryDefaultSQL =
   "FROM Zonemasters "
   "WHERE zone_id = :zoneid";
 
-static const char *isZoneMasterQueryKey = "PDNS_Is_Zone_Master_Query";
-static const char *isZoneMasterQueryDefaultSQL =
-  "SELECT zm.master "
-  "FROM Zones z JOIN Zonemasters zm ON z.id = zm.zone_id "
-  "WHERE z.name = lower(:name) AND zm.master = :master";
-
 static const char *deleteZoneQueryKey = "PDNS_Delete_Zone_Query";
 static const char *deleteZoneQueryDefaultSQL =
   "DELETE FROM Records WHERE zone_id = :zoneid";
@@ -338,7 +332,6 @@ OracleBackend::OracleBackend (const string &suffix, OCIEnv *envh,
   zoneInfoQuerySQL = getArg("zone-info-query");
   alsoNotifyQuerySQL = getArg("also-notify-query");
   zoneMastersQuerySQL = getArg("zone-masters-query");
-  isZoneMasterQuerySQL = getArg("is-zone-master-query");
   deleteZoneQuerySQL = getArg("delete-zone-query");
   zoneSetLastCheckQuerySQL = getArg("zone-set-last-check-query");
   insertRecordQuerySQL = getArg("insert-record-query");
@@ -607,43 +600,6 @@ OracleBackend::getDomainMasters (const DNSName& domain, int zoneId)
   return masters;
 }
 
-bool
-OracleBackend::isMaster (const DNSName& domain, const string &master)
-{
-  sword rc;
-  OCIStmt *stmt;
-
-  openMasterConnection();
-
-  stmt = prepare_query(masterSvcCtx, isZoneMasterQuerySQL, isZoneMasterQueryKey);
-
-  DNSName_to_cbuf(mQueryZone, domain, sizeof(mQueryZone));
-  string_to_cbuf(mQueryName, master, sizeof(mQueryName));
-
-  char res_master[512];
-  sb2 res_master_ind;
-
-  bind_str_failokay(stmt, ":nsname", myServerName, sizeof(myServerName));
-  bind_str(stmt, ":name", mQueryZone, sizeof(mQueryZone));
-  bind_str(stmt, ":master", mQueryName, sizeof(mQueryName));
-  define_output_str(stmt, 1, &res_master_ind, res_master, sizeof(res_master));
-
-  rc = OCIStmtExecute(masterSvcCtx, stmt, oraerr, 1, 0, NULL, NULL, OCI_DEFAULT);
-
-  if (rc == OCI_ERROR) {
-    throw OracleException("Oracle isMaster", oraerr);
-  }
-
-  release_query(stmt, isZoneMasterQueryKey);
-
-  if (rc != OCI_NO_DATA) {
-    check_indicator(res_master_ind, false);
-    return true;
-  }
-
-  return false;
-}
-
 bool
 OracleBackend::getDomainInfo (const DNSName& domain, DomainInfo &di)
 {
@@ -2238,7 +2194,6 @@ OracleFactory () : BackendFactory("oracle") {
     declare(suffix, "zone-info-query", "", zoneInfoQueryDefaultSQL);
     declare(suffix, "also-notify-query", "", alsoNotifyQueryDefaultSQL);
     declare(suffix, "zone-masters-query", "", zoneMastersQueryDefaultSQL);
-    declare(suffix, "is-zone-master-query", "", isZoneMasterQueryDefaultSQL);
     declare(suffix, "delete-zone-query", "", deleteZoneQueryDefaultSQL);
     declare(suffix, "zone-set-last-check-query", "", zoneSetLastCheckQueryDefaultSQL);
     declare(suffix, "zone-set-notified-serial-query", "", zoneSetNotifiedSerialQueryDefaultSQL);
index c141a93ad4e1f494920ffb41b5eacc2c141a6ae8..c846897c1ece82874a438e5a911b3194e8b1e2b4 100644 (file)
@@ -76,7 +76,6 @@ public:
                                       DNSName& after) override;
   bool get(DNSResourceRecord &rr) override;
   vector<string> getDomainMasters(const DNSName& domain, int zoneId) override;
-  bool isMaster(const DNSName& domain, const string &master) override;
   bool getDomainInfo(const DNSName& domain, DomainInfo &di) override;
   void alsoNotifies(const DNSName& domain, set<string> *addrs) override;
   void getUnfreshSlaveInfos(vector<DomainInfo>* domains) override;
@@ -127,7 +126,6 @@ private:
   string zoneInfoQuerySQL;
   string alsoNotifyQuerySQL;
   string zoneMastersQuerySQL;
-  string isZoneMasterQuerySQL;
   string deleteZoneQuerySQL;
   string zoneSetLastCheckQuerySQL;
 
index 2f973bedf5dcb0ffc299cb8a6383620f021a86f3..b20803db90323998e68902841d1578e66e2fedb7 100644 (file)
@@ -134,9 +134,6 @@ void HTTPConnector::restful_requestbuilder(const std::string &method, const Json
         req.POST()["content"] = param["content"].string_value();
         req.preparePost();
         verb = "PUT";
-    } else if (method == "isMaster") {
-        addUrlComponent(parameters, "ip", ss);
-        verb = "GET";
     } else if (method == "superMasterBackend") {
         std::stringstream ss2;
         addUrlComponent(parameters, "ip", ss);
index d8f8fdce8b34b7a4ea14179a2d1d13d4af4a8d44..31d4e80d313153433748d3c4a7f9b63167d2ba93 100644 (file)
@@ -609,23 +609,6 @@ void RemoteBackend::setNotified(uint32_t id, uint32_t serial) {
    }
 }
 
-bool RemoteBackend::isMaster(const DNSName& name, const string &ip)
-{
-   Json query = Json::object{
-     { "method", "isMaster" },
-     { "parameters", Json::object {
-       { "name", name.toString() },
-       { "ip", ip }
-     }}
-   };
-
-   Json answer;
-   if (this->send(query) == false || this->recv(answer) == false)
-     return false;
-
-   return true;
-}
-
 bool RemoteBackend::superMasterBackend(const string &ip, const DNSName& domain, const vector<DNSResourceRecord>&nsset, string* nameserver, string *account, DNSBackend **ddb)
 {
    Json::array rrset;
index 2d0d1b7822a886d8ad52bd708c854ad03d461e18..31805947c230a1787987dd4aa24802fac48e84c7 100644 (file)
@@ -170,7 +170,6 @@ class RemoteBackend : public DNSBackend
   bool getDomainInfo(const DNSName& domain, DomainInfo& di, bool getSerial=true ) override;
   void setNotified(uint32_t id, uint32_t serial) override;
   bool doesDNSSEC() override;
-  bool isMaster(const DNSName& name, const string &ip) override;
   bool superMasterBackend(const string &ip, const DNSName& domain, const vector<DNSResourceRecord>&nsset, string *nameserver, string *account, DNSBackend **ddb) override;
   bool createSlaveDomain(const string &ip, const DNSName& domain, const string& nameserver, const string &account) override;
   bool replaceRRSet(uint32_t domain_id, const DNSName& qname, const QType& qt, const vector<DNSResourceRecord>& rrset) override;
index aed51ff4569342aeedce807d022c7810a0013c84..9c65bb3b86fd81427632f107f3638751587f9239 100644 (file)
@@ -229,12 +229,6 @@ BOOST_AUTO_TEST_CASE(test_method_getAllDomains) {
    BOOST_CHECK_EQUAL(di.backend, be);
 }
 
-BOOST_AUTO_TEST_CASE(test_method_isMaster) {
-   BOOST_TEST_MESSAGE("Testing isMaster method");
-   BOOST_CHECK(be->isMaster(DNSName("ns1.unit.test."), "10.0.0.1"));
-   BOOST_CHECK(!be->isMaster(DNSName("ns2.unit.test."), "10.0.0.2"));
-}
-
 BOOST_AUTO_TEST_CASE(test_method_superMasterBackend) {
    DNSResourceRecord rr;
    std::vector<DNSResourceRecord> nsset; 
index 4dbc9697054942c663d9ce10ee06928f094f40dc..66ecb13b5c97995e3fd537e6e3138c91542c89b5 100644 (file)
@@ -61,7 +61,6 @@ GSQLBackend::GSQLBackend(const string &mode, const string &suffix)
   d_listQuery=getArg("list-query");
   d_listSubZoneQuery=getArg("list-subzone-query");
 
-  d_MasterOfDomainsZoneQuery=getArg("master-zone-query");
   d_InfoOfDomainsZoneQuery=getArg("info-zone-query");
   d_InfoOfAllSlaveDomainsQuery=getArg("info-all-slaves-query");
   d_SuperMasterInfoQuery=getArg("supermaster-query");
@@ -130,7 +129,6 @@ GSQLBackend::GSQLBackend(const string &mode, const string &suffix)
   d_ANYIdQuery_stmt = NULL;
   d_listQuery_stmt = NULL;
   d_listSubZoneQuery_stmt = NULL;
-  d_MasterOfDomainsZoneQuery_stmt = NULL;
   d_InfoOfDomainsZoneQuery_stmt = NULL;
   d_InfoOfAllSlaveDomainsQuery_stmt = NULL;
   d_SuperMasterInfoQuery_stmt = NULL;
@@ -216,39 +214,6 @@ void GSQLBackend::setFresh(uint32_t domain_id)
   }
 }
 
-bool GSQLBackend::isMaster(const DNSName &domain, const string &ip)
-{
-  try {
-    reconnectIfNeeded();
-
-    d_MasterOfDomainsZoneQuery_stmt->
-      bind("domain", domain)->
-      execute()->
-      getResult(d_result)->
-      reset();
-  }
-  catch (SSqlException &e) {
-    throw PDNSException("GSQLBackend unable to retrieve list of master domains: "+e.txtReason());
-  }
-
-  if(!d_result.empty()) {
-    ASSERT_ROW_COLUMNS("master-zone-query", d_result[0], 1);
-
-    // we can have multiple masters separated by commas
-    vector<string> masters;
-    stringtok(masters, d_result[0][0], " ,\t");
-
-    for(const auto& master: masters) {
-      const ComboAddress caMaster(master);
-      if(ip == caMaster.toString())
-        return true;
-    }
-  }
-
-  // no matching master
-  return false;
-}
-
 bool GSQLBackend::setMaster(const DNSName &domain, const string &ip)
 {
   try {
index f1ce75e244e0a36f47d719a7ac544499f42a2ca0..6d4de0360840fc538e6bf758dfde08ec98198951 100644 (file)
@@ -178,7 +178,6 @@ public:
   bool list(const DNSName &target, int domain_id, bool include_disabled=false) override;
   bool get(DNSResourceRecord &r) override;
   void getAllDomains(vector<DomainInfo> *domains, bool include_disabled=false) override;
-  bool isMaster(const DNSName &domain, const string &ip) override;
   void alsoNotifies(const DNSName &domain, set<string> *ips) override;
   bool startTransaction(const DNSName &domain, int domain_id=-1) override;
   bool commitTransaction() override;
index 2d0d178b3a7cc62bd34d3a43cbf08a8acc032fde..5ea01a66f5cd92caaafcdd544cdda744e2b9bf96 100644 (file)
@@ -42,6 +42,7 @@ class DNSPacket;
 #include "comment.hh"
 #include "dnsname.hh"
 #include "dnsrecords.hh"
+#include "iputils.hh"
 
 class DNSBackend;  
 struct DomainInfo
@@ -51,7 +52,7 @@ struct DomainInfo
   DNSName zone;
   time_t last_check;
   string account;
-  vector<string> masters;
+  vector<string> masters; // FIXME use ComboAddress
   DNSBackend *backend;
 
   uint32_t id;
@@ -86,6 +87,16 @@ struct DomainInfo
       return DomainInfo::Native;
   }
 
+  const bool isMaster(const ComboAddress& ip)
+  {
+    for( const auto& master: masters) {
+      const ComboAddress caMaster(master);
+      if(ip == caMaster)
+        return true;
+    }
+    return false;
+  }
+
 };
 
 struct TSIGKey {
@@ -236,11 +247,6 @@ public:
   }
 
   //! returns true if master ip is master for domain name.
-  virtual bool isMaster(const DNSName &name, const string &ip)
-  {
-    return false;
-  }
-  
   //! starts the transaction for updating domain qname (FIXME: what is id?)
   virtual bool startTransaction(const DNSName &qname, int id=-1)
   {
index 7b0d182cab9475638b1236bed8c1228e3049c912..fdf5b8bcc7006468b8cc6954375b0d61be82e528 100644 (file)
@@ -850,7 +850,7 @@ int PacketHandler::processNotify(DNSPacket *p)
     g_log<<Logger::Error<<"Received NOTIFY for "<<p->qdomain<<" from "<<p->getRemote()<<" but we are master, rejecting"<<endl;
     return RCode::Refused;
   }
-  else if(!db->isMaster(p->qdomain, p->getRemote().toString())) {
+  else if(!di.isMaster(p->getRemote())) {
     g_log<<Logger::Error<<"Received NOTIFY for "<<p->qdomain<<" from "<<p->getRemote()<<" which is not a master"<<endl;
     return RCode::Refused;
   }
index af031c1d44fcf0834fac5d3482a80c3f058c9d9e..692cb3ec0701903bbf36a6a6c067e1234119a2c3 100644 (file)
@@ -51,7 +51,6 @@ godbc-list-comments-query=SELECT domain_id,name,type,modified_at,account,comment
 godbc-list-domain-keys-query=select cryptokeys.id, flags, active, content from domains, cryptokeys where cryptokeys.domain_id=domains.id and name=?
 godbc-list-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE (disabled=0 OR ?) and domain_id=? order by name, type
 godbc-list-subzone-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and (name=? OR name like ?) and domain_id=?
-godbc-master-zone-query=select master from domains where name=? and type='SLAVE'
 godbc-nullify-ordername-and-update-auth-query=update records set ordername=NULL,auth=? where domain_id=? and name=? and disabled=0
 godbc-nullify-ordername-and-update-auth-type-query=update records set ordername=NULL,auth=? where domain_id=? and name=? and type=? and disabled=0
 godbc-remove-domain-key-query=delete from cryptokeys where domain_id=(select id from domains where name=?) and cryptokeys.id=?