From: Peter van Dijk Date: Mon, 17 Aug 2020 11:40:30 +0000 (+0200) Subject: Merge pull request #7963 from Godwottery/master X-Git-Tag: rec-4.4.0-beta1~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4b1a728b416e0b15b5c8970aedd4cf9ec81708ad;p=thirdparty%2Fpdns.git Merge pull request #7963 from Godwottery/master Add a new command to add a super-master to SQL backends --- 4b1a728b416e0b15b5c8970aedd4cf9ec81708ad diff --cc pdns/backends/gsql/gsqlbackend.hh index 2c6fb2fd02,41c53a547b..69083e01ed --- a/pdns/backends/gsql/gsqlbackend.hh +++ b/pdns/backends/gsql/gsqlbackend.hh @@@ -191,9 -192,12 +193,10 @@@ public bool feedRecord(const DNSResourceRecord &r, const DNSName &ordername, bool ordernameIsNSEC3=false) override; bool feedEnts(int domain_id, map& nonterm) override; bool feedEnts3(int domain_id, const DNSName &domain, map &nonterm, const NSEC3PARAMRecordContent& ns3prc, bool narrow) override; - bool createDomain(const DNSName &domain) override { - return createDomain(domain, "NATIVE", "", ""); - }; + bool createDomain(const DNSName &domain, const DomainInfo::DomainKind kind, const vector &masters, const string &account) override; bool createSlaveDomain(const string &ip, const DNSName &domain, const string &nameserver, const string &account) override; bool deleteDomain(const DNSName &domain) override; + bool superMasterAdd(const string &ip, const string &nameserver, const string &account); bool superMasterBackend(const string &ip, const DNSName &domain, const vector&nsset, string *nameserver, string *account, DNSBackend **db) override; void setFresh(uint32_t domain_id) override; void getUnfreshSlaveInfos(vector *domains) override; diff --cc pdns/pdnsutil.cc index 71ca3a69de,424f1881fc..56e180f696 --- a/pdns/pdnsutil.cc +++ b/pdns/pdnsutil.cc @@@ -1308,8 -1301,19 +1308,19 @@@ static int addOrReplaceRecord(bool addO return EXIT_SUCCESS; } + // addSuperMaster add anew super master + int addSuperMaster(const std::string &IP, const std::string &nameserver, const std::string &account) + { + UeberBackend B("default"); + + if ( B.superMasterAdd(IP, nameserver, account) ){ + return EXIT_SUCCESS; + } + return EXIT_FAILURE; + } + // delete-rrset zone name type -int deleteRRSet(const std::string& zone_, const std::string& name_, const std::string& type_) +static int deleteRRSet(const std::string& zone_, const std::string& name_, const std::string& type_) { UeberBackend B; DomainInfo di; @@@ -2472,8 -2476,15 +2485,15 @@@ tr cerr<<"Syntax: pdnsutil add-record ZONE name type [ttl] \"content\" [\"content\"...]"< 3 ? cmds[3] : "" )); + } else if(cmds[0] == "replace-rrset") { if(cmds.size() < 5) { cerr<<"Syntax: pdnsutil replace-rrset ZONE name type [ttl] \"content\" [\"content\"...]"<