g_argc = argc;
g_argv = argv;
g_stats.startupTime=time(0);
- versionSetProduct("Recursor");
+ versionSetProduct(ProductRecursor);
reportBasicTypes();
reportOtherTypes();
//! The main function of pdns, the pdns process
int main(int argc, char **argv)
{
- versionSetProduct("Authoritative Server");
+ versionSetProduct(ProductAuthoritative);
reportAllTypes(); // init MOADNSParser
// Even if PDNS is not deamonized it must be
#include "version.hh"
#include "version_generated.h"
-static string productName("");
+static ProductType productType;
string compilerVersion()
{
#endif
}
+// Human-readable product name
+string productName() {
+ switch (productType) {
+ case ProductAuthoritative:
+ return "PowerDNS Authoritative Server";
+ case ProductRecursor:
+ return "PowerDNS Recursor";
+ };
+}
+
+// REST API product type
+string productTypeApiType() {
+ switch (productType) {
+ case ProductAuthoritative:
+ return "authoritative";
+ case ProductRecursor:
+ return "recursor";
+ };
+}
+
void showProductVersion()
{
- theL()<<Logger::Warning<<"PowerDNS "<<productName<<" "<<PDNS_VERSION<<" ("DIST_HOST") "
- "(C) 2001-2013 PowerDNS.COM BV" << endl;
+ theL()<<Logger::Warning<<productName()<<" "<<PDNS_VERSION<<" ("DIST_HOST") "
+ "(C) 2001-2014 PowerDNS.COM BV" << endl;
theL()<<Logger::Warning<<"Using "<<(sizeof(unsigned long)*8)<<"-bits mode. "
"Built on "BUILD_DATE" by "BUILD_HOST", "<<compilerVersion()<<"."<<endl;
theL()<<Logger::Warning<<"PowerDNS comes with ABSOLUTELY NO WARRANTY. "
string fullVersionString()
{
ostringstream s;
- s << "PowerDNS "<<productName<<" "PDNS_VERSION" ("DIST_HOST" built "BUILD_DATE" "BUILD_HOST")";
+ s<<productName()<<" "PDNS_VERSION" ("DIST_HOST" built "BUILD_DATE" "BUILD_HOST")";
return s.str();
}
-void versionSetProduct(string product)
+void versionSetProduct(ProductType pt)
+{
+ productType = pt;
+}
+
+ProductType versionGetProduct()
{
- productName = product;
+ return productType;
}
#include "namespaces.hh"
+enum ProductType { ProductAuthoritative, ProductRecursor };
+
string compilerVersion();
void showProductVersion();
void showBuildConfiguration();
string fullVersionString();
-void versionSetProduct(string product);
+string productName();
+string productTypeApiType();
+void versionSetProduct(ProductType pt);
+ProductType versionGetProduct();
#endif //!VERSION_HH
}
static void fillServerDetail(Value& out, Value::AllocatorType& allocator) {
+ Value jdaemonType(productTypeApiType().c_str(), allocator);
out.SetObject();
out.AddMember("type", "Server", allocator);
out.AddMember("id", "localhost", allocator);
out.AddMember("url", "/servers/localhost", allocator);
- out.AddMember("daemon_type", "authoritative", allocator);
+ out.AddMember("daemon_type", jdaemonType, allocator);
out.AddMember("version", VERSION, allocator);
out.AddMember("config_url", "/servers/localhost/config{/config_setting}", allocator);
out.AddMember("zones_url", "/servers/localhost/zones{/zone}", allocator);