From: Christian Hofstaedtler Date: Sun, 20 Oct 2013 22:55:16 +0000 (+0200) Subject: correct overloading of feedRecord X-Git-Tag: rec-3.6.0-rc1~355^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fe4289c7ae8f459401591eb22090daf62bb5f2f5;p=pdns correct overloading of feedRecord G++ 4.8 does not warn about this, but clearly an overload with the wrong signature will not work when called through a base class pointer. (clang++ 3.3 produces a diagnostic.) --- diff --git a/modules/luabackend/luabackend.hh b/modules/luabackend/luabackend.hh index 204a7b3f3..f9eb31c4f 100644 --- a/modules/luabackend/luabackend.hh +++ b/modules/luabackend/luabackend.hh @@ -56,7 +56,7 @@ public: bool startTransaction(const string &qname, int id); bool commitTransaction(); bool abortTransaction(); - bool feedRecord(const DNSResourceRecord &rr); + bool feedRecord(const DNSResourceRecord &rr, string *ordername=0); // SUPERMASTER BACKEND diff --git a/modules/luabackend/slave.cc b/modules/luabackend/slave.cc index e967a9b6d..729286cb0 100644 --- a/modules/luabackend/slave.cc +++ b/modules/luabackend/slave.cc @@ -26,7 +26,7 @@ virtual bool startTransaction(const string &qname, int id); virtual bool commitTransaction(); virtual bool abortTransaction(); - virtual bool feedRecord(const DNSResourceRecord &rr); + virtual bool feedRecord(const DNSResourceRecord &rr, string* ordername=0); virtual bool getDomainInfo(const string &domain, DomainInfo &di); virtual bool isMaster(const string &name, const string &ip); @@ -129,7 +129,7 @@ bool LUABackend::abortTransaction() { return ok; } -bool LUABackend::feedRecord(const DNSResourceRecord &rr) { +bool LUABackend::feedRecord(const DNSResourceRecord &rr, string *ordername) { if (f_lua_feedrecord == 0) return false; diff --git a/modules/opendbxbackend/odbxbackend.cc b/modules/opendbxbackend/odbxbackend.cc index a4fd665ec..bf354927d 100644 --- a/modules/opendbxbackend/odbxbackend.cc +++ b/modules/opendbxbackend/odbxbackend.cc @@ -645,7 +645,7 @@ bool OdbxBackend::createSlaveDomain( const string& ip, const string& domain, con -bool OdbxBackend::feedRecord( const DNSResourceRecord& rr ) +bool OdbxBackend::feedRecord( const DNSResourceRecord& rr, string *ordername ) { try { diff --git a/modules/opendbxbackend/odbxbackend.hh b/modules/opendbxbackend/odbxbackend.hh index 7e826a2d3..a4b3649f6 100644 --- a/modules/opendbxbackend/odbxbackend.hh +++ b/modules/opendbxbackend/odbxbackend.hh @@ -86,7 +86,7 @@ public: bool isMaster( const string& domain, const string& ip ); bool getDomainInfo( const string& domain, DomainInfo& di ); - bool feedRecord( const DNSResourceRecord& rr ); + bool feedRecord( const DNSResourceRecord& rr, string *ordername=0 ); bool createSlaveDomain( const string& ip, const string& domain, const string& account ); bool superMasterBackend( const string& ip, const string& domain, const vector& nsset, string* account, DNSBackend** ddb ); diff --git a/modules/oraclebackend/oraclebackend.cc b/modules/oraclebackend/oraclebackend.cc index c216cdff3..bf6dbd41c 100644 --- a/modules/oraclebackend/oraclebackend.cc +++ b/modules/oraclebackend/oraclebackend.cc @@ -1058,7 +1058,7 @@ OracleBackend::startTransaction (const string &domain, int zoneId) } bool -OracleBackend::feedRecord (const DNSResourceRecord &rr) +OracleBackend::feedRecord (const DNSResourceRecord &rr, string *ordername) { sword rc; OCIStmt *stmt; diff --git a/modules/oraclebackend/oraclebackend.hh b/modules/oraclebackend/oraclebackend.hh index 064fc85c4..95aa90811 100644 --- a/modules/oraclebackend/oraclebackend.hh +++ b/modules/oraclebackend/oraclebackend.hh @@ -69,7 +69,7 @@ public: void setNotified(uint32_t zoneId, uint32_t serial); bool list(const string &domain, int zoneId); bool startTransaction(const string &domain, int zoneId); - bool feedRecord(const DNSResourceRecord &rr); + bool feedRecord(const DNSResourceRecord &rr, string* ordername); bool commitTransaction(); bool abortTransaction(); bool superMasterBackend(const string &ip, const string &domain, diff --git a/pdns/docs/pdns.xml b/pdns/docs/pdns.xml index fb2cada09..ab0ce7dbd 100755 --- a/pdns/docs/pdns.xml +++ b/pdns/docs/pdns.xml @@ -22386,7 +22386,7 @@ static RandomLoader randomloader; virtual bool startTransaction(const string &qname, int id); virtual bool commitTransaction(); virtual bool abortTransaction(); - virtual bool feedRecord(const DNSResourceRecord &rr); + virtual bool feedRecord(const DNSResourceRecord &rr, string *ordername=0); virtual void getUnfreshSlaveInfos(vector<DomainInfo>* domains); virtual void setFresh(uint32_t id); /* ... */ @@ -22467,7 +22467,7 @@ static RandomLoader randomloader; - bool feedRecord(const DNSResourceRecord &rr) + bool feedRecord(const DNSResourceRecord &rr, string *ordername) Insert this record. @@ -22613,7 +22613,7 @@ public: virtual bool startTransaction(const string &qname, int id); virtual bool commitTransaction(); virtual bool abortTransaction(); - virtual bool feedRecord(const DNSResourceRecord &rr); + virtual bool feedRecord(const DNSResourceRecord &rr, string *ordername); virtual bool replaceRRSet(uint32_t domain_id, const string& qname, const QType& qt, const vector<DNSResourceRecord>& rrset) virtual bool listSubZone(const string &zone, int domain_id); /* ... */ @@ -22647,7 +22647,7 @@ public: - virtual bool feedRecord(const DNSResourceRecord &rr); + virtual bool feedRecord(const DNSResourceRecord &rr, string *ordername); See . Please keep in mind that the zone is not empty because startTransaction() was called different.