virtual void lookup(const QType &qtype, const string &qdomain, DNSPacket *pkt_p=0, int zoneId=-1)=0;
virtual bool list(const string &target, int domain_id)=0;
virtual bool get(DNSResourceRecord &r)=0;
- virtual bool getSOA(const string &name, SOAData &soadata, DNSPacket *p=0);
+ virtual bool getSOA(const DNSName &name, SOAData &soadata);
};
```
void lookup(const QType &qtype, const DNSName &qname, DNSPacket *p, int domain_id) override;
bool get(DNSResourceRecord &rr) override;
//! fills the soadata struct with the SOA details. Returns false if there is no SOA.
- bool getSOA(const DNSName &name, SOAData &soadata, DNSPacket *p=0) override;
+ bool getSOA(const DNSName &name, SOAData &soadata);
// MASTER BACKEND
return !rr.content.empty();
}
-bool LUABackend::getSOA(const DNSName &name, SOAData &soadata, DNSPacket *p) {
+bool LUABackend::getSOA(const DNSName &name, SOAData &soadata) {
if (logging)
L << Logger::Info << backend_name << "(getsoa) BEGIN" << endl;
- dnspacket = p;
-
lua_rawgeti(lua, LUA_REGISTRYINDEX, f_lua_getsoa);
lua_pushstring(lua, name.toString().c_str());
string e = backend_name + lua_tostring(lua, -1);
lua_pop(lua, 1);
- dnspacket = NULL;
-
throw runtime_error(e);
return false;
}
- dnspacket = NULL;
-
size_t returnedwhat = lua_type(lua, -1);
if (returnedwhat != LUA_TTABLE) {
lua_pop(lua, 1 );
return true;
}
-bool MyDNSBackend::getSOA(const DNSName& name, SOAData& soadata, DNSPacket*) {
+bool MyDNSBackend::getSOA(const DNSName& name, SOAData& soadata) {
string query;
SSqlStatement::row_t rrow;
void lookup(const QType &, const DNSName &qdomain, DNSPacket *p=0, int zoneId=-1) override;
bool list(const DNSName &target, int domain_id, bool include_disabled=false) override;
bool get(DNSResourceRecord &r) override;
- bool getSOA(const DNSName& name, SOAData& soadata, DNSPacket*) override;
+ bool getSOA(const DNSName& name, SOAData& soadata) override;
void getAllDomains(vector<DomainInfo> *domains, bool include_disabled=false) override;
private:
SMySQL *d_db;
-bool OdbxBackend::getSOA( const DNSName& domain, SOAData& sd, DNSPacket* p )
+bool OdbxBackend::getSOA( const DNSName& domain, SOAData& sd)
{
const char* tmp;
~OdbxBackend();
void lookup( const QType& qtype, const DNSName& qdomain, DNSPacket* p = 0, int zoneid = -1 ) override;
- bool getSOA( const DNSName& domain, SOAData& sd, DNSPacket* p ) override;
+ bool getSOA( const DNSName& domain, SOAData& sd ) override;
bool list( const DNSName& target, int domain_id, bool include_disabled=false ) override;
bool get( DNSResourceRecord& rr ) override;
bool DNSBackend::getAuth(DNSPacket *p, SOAData *sd, const DNSName &target)
{
- return this->getSOA(target, *sd, p);
+ return this->getSOA(target, *sd);
}
void DNSBackend::setArgPrefix(const string &prefix)
\param domain Domain we want to get the SOA details of
\param sd SOAData which is filled with the SOA details
*/
-bool DNSBackend::getSOA(const DNSName &domain, SOAData &sd, DNSPacket *p)
+bool DNSBackend::getSOA(const DNSName &domain, SOAData &sd)
{
- this->lookup(QType(QType::SOA),domain,p);
+ this->lookup(QType(QType::SOA),domain);
DNSResourceRecord rr;
rr.auth = true;
virtual ~DNSBackend(){};
//! fills the soadata struct with the SOA details. Returns false if there is no SOA.
- virtual bool getSOA(const DNSName &name, SOAData &soadata, DNSPacket *p=0);
+ virtual bool getSOA(const DNSName &name, SOAData &soadata);
//! Calculates a SOA serial for the zone and stores it in the third argument.
virtual bool calculateSOASerial(const DNSName& domain, const SOAData& sd, time_t& serial);
!(i->dr.d_type==QType::MX || i->dr.d_type==QType::NS || i->dr.d_type==QType::SRV))
continue;
- if(r->d.aa && i->dr.d_name.countLabels() && i->dr.d_type==QType::NS && !B.getSOA(i->dr.d_name,sd,p) && !retargeted) { // drop AA in case of non-SOA-level NS answer, except for root referral
+ if(r->d.aa && i->dr.d_name.countLabels() && i->dr.d_type==QType::NS && !B.getSOA(i->dr.d_name,sd) && !retargeted) { // drop AA in case of non-SOA-level NS answer, except for root referral
r->setA(false);
// i->d_place=DNSResourceRecord::AUTHORITY; // XXX FIXME
}
return found;
}
-bool UeberBackend::getSOA(const DNSName &domain, SOAData &sd, DNSPacket *p)
+bool UeberBackend::getSOA(const DNSName &domain, SOAData &sd)
{
d_question.qtype=QType::SOA;
d_question.qname=domain;
}
// not found in neg. or pos. cache, look it up
- return getSOAUncached(domain, sd, p);
+ return getSOAUncached(domain, sd);
}
-bool UeberBackend::getSOAUncached(const DNSName &domain, SOAData &sd, DNSPacket *p)
+bool UeberBackend::getSOAUncached(const DNSName &domain, SOAData &sd)
{
d_question.qtype=QType::SOA;
d_question.qname=domain;
d_question.zoneId=-1;
for(vector<DNSBackend *>::const_iterator i=backends.begin();i!=backends.end();++i)
- if((*i)->getSOA(domain, sd, p)) {
+ if((*i)->getSOA(domain, sd)) {
if( d_cache_ttl ) {
DNSZoneRecord rr;
rr.dr.d_name = sd.qname;
void lookup(const QType &, const DNSName &qdomain, DNSPacket *pkt_p=0, int zoneId=-1);
bool getAuth(DNSPacket *p, SOAData *sd, const DNSName &target);
- bool getSOA(const DNSName &domain, SOAData &sd, DNSPacket *p=0);
- bool getSOAUncached(const DNSName &domain, SOAData &sd, DNSPacket *p=0); // same, but ignores cache
+ bool getSOA(const DNSName &domain, SOAData &sd);
+ bool getSOAUncached(const DNSName &domain, SOAData &sd); // same, but ignores cache
bool get(DNSZoneRecord &r);
void getAllDomains(vector<DomainInfo> *domains, bool include_disabled=false);