]> granicus.if.org Git - pdns/commitdiff
allow reuse of DomainInfo::kind enum
authorChristian Hofstaedtler <christian@hofstaedtler.name>
Fri, 27 Sep 2013 12:55:11 +0000 (14:55 +0200)
committerChristian Hofstaedtler <christian@hofstaedtler.name>
Fri, 27 Sep 2013 16:05:44 +0000 (18:05 +0200)
pdns/backends/gsql/gsqlbackend.cc
pdns/dnsbackend.hh

index e13d60050f286c81941b7c40e59eb4338db9cebf..1c62dd2c0a120f8abf6b9f2b00e91646237e19b6 100644 (file)
@@ -143,12 +143,7 @@ bool GSQLBackend::getDomainInfo(const string &domain, DomainInfo &di)
     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;
 }
index 7759ff5a7dd18e4b8d8243f05a2690d766c2ef03..f6795ce1e8b58649e22f3f98b181ebfdf91ec3c2 100644 (file)
@@ -35,11 +35,12 @@ class DNSPacket;
 # include <dirent.h>
 #endif // WIN32
 
+#include "misc.hh"
 #include "qtype.hh"
 #include "dns.hh"
 #include <vector>
 #include "namespaces.hh"
-  
+
 class DNSBackend;  
 struct DomainInfo
 {
@@ -50,7 +51,7 @@ 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
@@ -59,10 +60,26 @@ struct DomainInfo
   }
 
   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 {