L<<Logger::Error<<"Error retrieving serial for '"<<domain<<"': "<<ae.reason<<endl;
}
- if(pdns_iequals(type,"SLAVE"))
- di.kind=DomainInfo::Slave;
- else if(pdns_iequals(type,"MASTER"))
- di.kind=DomainInfo::Master;
- else
- di.kind=DomainInfo::Native;
+ di.kind = DomainInfo::stringToKind(type);
return true;
}
# include <dirent.h>
#endif // WIN32
+#include "misc.hh"
#include "qtype.hh"
#include "dns.hh"
#include <vector>
#include "namespaces.hh"
-
+
class DNSBackend;
struct DomainInfo
{
uint32_t notified_serial;
uint32_t serial;
time_t last_check;
- enum {Master,Slave,Native} kind;
+ enum DomainKind { Master, Slave, Native } kind;
DNSBackend *backend;
bool operator<(const DomainInfo& rhs) const
}
const char *getKindString() const
+ {
+ return DomainInfo::getKindString(kind);
+ }
+
+ static const char *getKindString(enum DomainKind kind)
{
const char *kinds[]={"Master", "Slave", "Native"};
return kinds[kind];
}
+
+ static DomainKind stringToKind(const string& kind)
+ {
+ if(pdns_iequals(kind,"SLAVE"))
+ return DomainInfo::Slave;
+ else if(pdns_iequals(kind,"MASTER"))
+ return DomainInfo::Master;
+ else
+ return DomainInfo::Native;
+ }
+
};
struct TSIGKey {