From aa09fa3baf7ef7ab08c5ed85f474ed3aa28e6e89 Mon Sep 17 00:00:00 2001 From: Pieter Lexis Date: Wed, 10 Feb 2016 15:35:10 +0100 Subject: [PATCH] Deprecate the insert-slave-query --- docs/markdown/authoritative/backend-generic-sql.md | 3 +-- modules/gmysqlbackend/gmysqlbackend.cc | 3 +-- modules/godbcbackend/godbcbackend.cc | 3 +-- modules/goraclebackend/goraclebackend.cc | 3 +-- modules/gpgsqlbackend/gpgsqlbackend.cc | 3 +-- modules/gsqlite3backend/gsqlite3backend.cc | 3 +-- pdns/backends/gsql/gsqlbackend.cc | 14 +++++--------- pdns/backends/gsql/gsqlbackend.hh | 11 +++++------ 8 files changed, 16 insertions(+), 27 deletions(-) diff --git a/docs/markdown/authoritative/backend-generic-sql.md b/docs/markdown/authoritative/backend-generic-sql.md index 704b083319..5cd920d774 100644 --- a/docs/markdown/authoritative/backend-generic-sql.md +++ b/docs/markdown/authoritative/backend-generic-sql.md @@ -197,7 +197,7 @@ if you wish to calculate ordername and auth without using pdns-rectify. - `is-our-domain-query`: Checks if the domain (either id or name) is in the 'domains' table. This query is run before any other (possibly heavy) query. -- `insert-zone-query`: Add a new NATIVE domain. +- `insert-zone-query`: Add a new domain. This query also requires the type, masters and account fields - `update-kind-query`: Called to update the type of domain. - `delete-zone-query` Called to delete all records of a zone. Used before an incoming AXFR. - `delete-domain-query`: Called to delete a domain from the domains-table. @@ -234,7 +234,6 @@ Most installations will have zero need to change the following queries. ### On slaves - `info-all-slaves-query`: Called to retrieve all slave domains. -- `insert-slave-query`: Called to add a domain as slave after a supermaster notification. - `master-zone-query`: Called to determine the master of a zone. - `update-lastcheck-query`: Called to update the last time a slave domain was successfully checked for freshness. - `update-master-query`: Called to update the master address of a domain. diff --git a/modules/gmysqlbackend/gmysqlbackend.cc b/modules/gmysqlbackend/gmysqlbackend.cc index 6b0e7c033e..1c80d0d4eb 100644 --- a/modules/gmysqlbackend/gmysqlbackend.cc +++ b/modules/gmysqlbackend/gmysqlbackend.cc @@ -74,8 +74,7 @@ public: declare(suffix,"supermaster-query","", "select account from supermasters where ip=? and nameserver=?"); declare(suffix,"supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver=? and account=?"); - declare(suffix,"insert-zone-query","", "insert into domains (type,name) values('NATIVE',?)"); - declare(suffix,"insert-slave-query","", "insert into domains (type,name,master,account) values('SLAVE',?,?,?)"); + declare(suffix,"insert-zone-query","", "insert into domains (type,name,master,account) values(?,?,?,?)"); declare(suffix, "insert-record-query", "", "insert into records (content,ttl,prio,type,domain_id,disabled,name,ordername,auth) values (?,?,?,?,?,?,?,?,?)"); declare(suffix, "insert-empty-non-terminal-order-query", "insert empty non-terminal in zone", "insert into records (type,domain_id,disabled,name,ordername,auth) values (null,?,0,?,?,?)"); diff --git a/modules/godbcbackend/godbcbackend.cc b/modules/godbcbackend/godbcbackend.cc index 9be9e7c64c..e0dcf24b1b 100644 --- a/modules/godbcbackend/godbcbackend.cc +++ b/modules/godbcbackend/godbcbackend.cc @@ -72,8 +72,7 @@ public: declare(suffix,"supermaster-query","", "select account from supermasters where ip=? and nameserver=?"); declare(suffix,"supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver=? and account=?"); - declare(suffix,"insert-zone-query","", "insert into domains (type,name) values('NATIVE',?)"); - declare(suffix,"insert-slave-query","", "insert into domains (type,name,master,account) values('SLAVE',?,?,?)"); + declare(suffix,"insert-zone-query","", "insert into domains (type,name,master,account) values(?,?,?,?)"); declare(suffix, "insert-record-query", "", "insert into records (content,ttl,prio,type,domain_id,disabled,name,ordername,auth) values (?,?,?,?,?,?,?,convert(varbinary(255),?),?)"); declare(suffix, "insert-empty-non-terminal-order-query", "insert empty non-terminal in zone", "insert into records (type,domain_id,disabled,name,ordername,auth) values (null,?,0,?,convert(varbinary(255),?),?)"); diff --git a/modules/goraclebackend/goraclebackend.cc b/modules/goraclebackend/goraclebackend.cc index a52908940b..c79748056e 100644 --- a/modules/goraclebackend/goraclebackend.cc +++ b/modules/goraclebackend/goraclebackend.cc @@ -88,8 +88,7 @@ public: declare(suffix, "info-all-slaves-query", "","select id,name,master,last_check from domains where type='SLAVE'"); declare(suffix, "supermaster-query", "", "select account from supermasters where ip=:ip and nameserver=:nameserver"); declare(suffix, "supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver=:nameserver and account=:account"); - declare(suffix, "insert-zone-query", "", "insert into domains (id,type,name) values(domains_id_sequence.nextval,'NATIVE',:domain)"); - declare(suffix, "insert-slave-query", "", "insert into domains (id,type,name,master,account) values(domains_id_sequence.nextval,'SLAVE',:domain,:masters,:account)"); + declare(suffix, "insert-zone-query", "", "insert into domains (id,type,name,master,account) values(domains_id_sequence.nextval,:type,:domain,:masters,:account)"); declare(suffix, "insert-record-query", "", "insert into records (id,content,ttl,prio,type,domain_id,disabled,name,ordername,auth) values (records_id_sequence.nextval,:content,:ttl,:priority,:qtype,:domain_id,:disabled,:qname,:ordername || ' ',:auth)"); declare(suffix, "insert-empty-non-terminal-order-query", "insert empty non-terminal in zone", "insert into records (id,type,domain_id,disabled,name,ordername,auth) values (records_id_sequence.nextval,null,:domain_id,0,:qname,:ordername,:auth)"); diff --git a/modules/gpgsqlbackend/gpgsqlbackend.cc b/modules/gpgsqlbackend/gpgsqlbackend.cc index f5b97391e4..efade6beae 100644 --- a/modules/gpgsqlbackend/gpgsqlbackend.cc +++ b/modules/gpgsqlbackend/gpgsqlbackend.cc @@ -69,8 +69,7 @@ public: declare(suffix,"supermaster-query","", "select account from supermasters where ip=$1 and nameserver=$2"); declare(suffix,"supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver=$1 and account=$2"); - declare(suffix,"insert-zone-query","", "insert into domains (type,name) values('NATIVE',$1)"); - declare(suffix,"insert-slave-query","", "insert into domains (type,name,master,account) values('SLAVE',$1,$2,$3)"); + declare(suffix,"insert-zone-query","", "insert into domains (type,name,master,account) values($1,$2,$3,$4)"); declare(suffix, "insert-record-query", "", "insert into records (content,ttl,prio,type,domain_id,disabled,name,ordername,auth) values ($1,$2,$3,$4,$5,$6,$7,$8,$9)"); declare(suffix, "insert-empty-non-terminal-order-query", "insert empty non-terminal in zone", "insert into records (type,domain_id,disabled,name,ordername,auth) values (null,$1,false,$2,$3,$4)"); diff --git a/modules/gsqlite3backend/gsqlite3backend.cc b/modules/gsqlite3backend/gsqlite3backend.cc index 9952acfaea..fe74686cb4 100644 --- a/modules/gsqlite3backend/gsqlite3backend.cc +++ b/modules/gsqlite3backend/gsqlite3backend.cc @@ -85,8 +85,7 @@ public: declare(suffix, "supermaster-query", "", "select account from supermasters where ip=:ip and nameserver=:nameserver"); declare(suffix, "supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver=:nameserver and account=:account"); - declare(suffix, "insert-zone-query", "", "insert into domains (type,name) values('NATIVE',:domain)"); - declare(suffix, "insert-slave-query", "", "insert into domains (type,name,master,account) values('SLAVE',:domain,:masters,:account)"); + declare(suffix, "insert-zone-query", "", "insert into domains (type,name,master,account) values(:type, :domain, :masters, :account)"); declare(suffix, "insert-record-query", "", "insert into records (content,ttl,prio,type,domain_id,disabled,name,ordername,auth) values (:content,:ttl,:priority,:qtype,:domain_id,:disabled,:qname,:ordername,:auth)"); declare(suffix, "insert-empty-non-terminal-order-query", "insert empty non-terminal in zone", "insert into records (type,domain_id,disabled,name,ordername,auth) values (null,:domain_id,0,:qname,:ordername,:auth)"); diff --git a/pdns/backends/gsql/gsqlbackend.cc b/pdns/backends/gsql/gsqlbackend.cc index 70f5e3eee6..c607b17114 100644 --- a/pdns/backends/gsql/gsqlbackend.cc +++ b/pdns/backends/gsql/gsqlbackend.cc @@ -69,7 +69,6 @@ GSQLBackend::GSQLBackend(const string &mode, const string &suffix) d_SuperMasterInfoQuery=getArg("supermaster-query"); d_GetSuperMasterIPs=getArg("supermaster-name-to-ips"); d_InsertZoneQuery=getArg("insert-zone-query"); - d_InsertSlaveZoneQuery=getArg("insert-slave-query"); d_InsertRecordQuery=getArg("insert-record-query"); d_UpdateMasterOfZoneQuery=getArg("update-master-query"); d_UpdateKindOfZoneQuery=getArg("update-kind-query"); @@ -140,7 +139,6 @@ GSQLBackend::GSQLBackend(const string &mode, const string &suffix) d_SuperMasterInfoQuery_stmt = NULL; d_GetSuperMasterIPs_stmt = NULL; d_InsertZoneQuery_stmt = NULL; - d_InsertSlaveZoneQuery_stmt = NULL; d_InsertRecordQuery_stmt = NULL; d_InsertEmptyNonTerminalOrderQuery_stmt = NULL; d_UpdateMasterOfZoneQuery_stmt = NULL; @@ -1108,11 +1106,14 @@ bool GSQLBackend::superMasterBackend(const string &ip, const DNSName &domain, co return false; } -bool GSQLBackend::createDomain(const DNSName &domain) +bool GSQLBackend::createDomain(const DNSName &domain, const string &type, const string &masters, const string &account) { try { d_InsertZoneQuery_stmt-> + bind("type", type)-> bind("domain", domain)-> + bind("masters", masters)-> + bind("account", account)-> execute()-> reset(); } @@ -1146,12 +1147,7 @@ bool GSQLBackend::createSlaveDomain(const string &ip, const DNSName &domain, con masters = boost::join(tmp, ", "); } } - d_InsertSlaveZoneQuery_stmt-> - bind("domain", domain)-> - bind("masters", masters)-> - bind("account", account)-> - execute()-> - reset(); + createDomain(domain, "SLAVE", masters, account); } catch(SSqlException &e) { throw DBException("Database error trying to insert new slave domain '"+domain.toString()+"': "+ e.txtReason()); diff --git a/pdns/backends/gsql/gsqlbackend.hh b/pdns/backends/gsql/gsqlbackend.hh index ae713201a0..add41f3e8b 100644 --- a/pdns/backends/gsql/gsqlbackend.hh +++ b/pdns/backends/gsql/gsqlbackend.hh @@ -42,8 +42,7 @@ public: d_InfoOfAllSlaveDomainsQuery_stmt = d_db->prepare(d_InfoOfAllSlaveDomainsQuery, 0); d_SuperMasterInfoQuery_stmt = d_db->prepare(d_SuperMasterInfoQuery, 2); d_GetSuperMasterIPs_stmt = d_db->prepare(d_GetSuperMasterIPs, 2); - d_InsertZoneQuery_stmt = d_db->prepare(d_InsertZoneQuery, 1); - d_InsertSlaveZoneQuery_stmt = d_db->prepare(d_InsertSlaveZoneQuery, 3); + d_InsertZoneQuery_stmt = d_db->prepare(d_InsertZoneQuery, 4); d_InsertRecordQuery_stmt = d_db->prepare(d_InsertRecordQuery, 9); d_InsertEmptyNonTerminalOrderQuery_stmt = d_db->prepare(d_InsertEmptyNonTerminalOrderQuery, 4); d_UpdateMasterOfZoneQuery_stmt = d_db->prepare(d_UpdateMasterOfZoneQuery, 2); @@ -111,7 +110,6 @@ public: release(&d_SuperMasterInfoQuery_stmt); release(&d_GetSuperMasterIPs_stmt); release(&d_InsertZoneQuery_stmt); - release(&d_InsertSlaveZoneQuery_stmt); release(&d_InsertRecordQuery_stmt); release(&d_InsertEmptyNonTerminalOrderQuery_stmt); release(&d_UpdateMasterOfZoneQuery_stmt); @@ -172,7 +170,10 @@ public: bool feedRecord(const DNSResourceRecord &r, string *ordername=0); bool feedEnts(int domain_id, map& nonterm); bool feedEnts3(int domain_id, const DNSName &domain, map &nonterm, const NSEC3PARAMRecordContent& ns3prc, bool narrow); - bool createDomain(const DNSName &domain); + bool createDomain(const DNSName &domain, const string &type, const string &masters, const string &account); + bool createDomain(const DNSName &domain) { + return createDomain(domain, "NATIVE", "", ""); + }; bool createSlaveDomain(const string &ip, const DNSName &domain, const string &nameserver, const string &account); bool deleteDomain(const DNSName &domain); bool superMasterBackend(const string &ip, const DNSName &domain, const vector&nsset, string *nameserver, string *account, DNSBackend **db); @@ -248,7 +249,6 @@ private: string d_GetSuperMasterIPs; string d_InsertZoneQuery; - string d_InsertSlaveZoneQuery; string d_InsertRecordQuery; string d_InsertEmptyNonTerminalOrderQuery; string d_UpdateMasterOfZoneQuery; @@ -320,7 +320,6 @@ private: SSqlStatement* d_SuperMasterInfoQuery_stmt; SSqlStatement* d_GetSuperMasterIPs_stmt; SSqlStatement* d_InsertZoneQuery_stmt; - SSqlStatement* d_InsertSlaveZoneQuery_stmt; SSqlStatement* d_InsertRecordQuery_stmt; SSqlStatement* d_InsertEmptyNonTerminalOrderQuery_stmt; SSqlStatement* d_UpdateMasterOfZoneQuery_stmt; -- 2.47.2