From: Christian Hofstaedtler Date: Wed, 28 Aug 2013 14:12:10 +0000 (+0200) Subject: json webserver: check for presence of command X-Git-Tag: rec-3.6.0-rc1~462^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2fe9c01c11bf0c25c3ed3c1db6f91df949546487;p=thirdparty%2Fpdns.git json webserver: check for presence of command --- diff --git a/pdns/ws.cc b/pdns/ws.cc index f4cea02a3b..dc306b52b4 100644 --- a/pdns/ws.cc +++ b/pdns/ws.cc @@ -317,8 +317,7 @@ string StatWebServer::jsonstat(const string& method, const string& post, const m } ret+=makeStringFromDocument(doc); } - - if(command=="config") { + else if(command=="config") { vector items = ::arg().list(); Document doc; doc.SetArray(); @@ -338,8 +337,7 @@ string StatWebServer::jsonstat(const string& method, const string& post, const m } ret += makeStringFromDocument(doc); } - - if(command == "flush-cache") { + else if(command == "flush-cache") { extern PacketCache PC; int number; if(ourvarmap["domain"].empty()) @@ -352,7 +350,7 @@ string StatWebServer::jsonstat(const string& method, const string& post, const m //cerr<<"Flushed cache for '"< m; m["error"]="pdns-control requires a POST"; @@ -408,7 +406,7 @@ string StatWebServer::jsonstat(const string& method, const string& post, const m ret+= returnJSONObject(m); } - if(command == "zone-rest") { // http://jsonstat?command=zone-rest&rest=/powerdns.nl/www.powerdns.nl/a + else if(command == "zone-rest") { // http://jsonstat?command=zone-rest&rest=/powerdns.nl/www.powerdns.nl/a vector parts; stringtok(parts, ourvarmap["rest"], "/"); if(parts.size() != 3) @@ -496,11 +494,10 @@ string StatWebServer::jsonstat(const string& method, const string& post, const m return ret+post; } } - if(command=="log-grep") { + else if(command=="log-grep") { ret += makeLogGrepJSON(ourvarmap, ::arg()["experimental-logfile"], " pdns["); } - - if(command=="domains") { + else if(command=="domains") { UeberBackend B; vector domains; B.getAllDomains(&domains); @@ -527,6 +524,10 @@ string StatWebServer::jsonstat(const string& method, const string& post, const m } doc.AddMember("domains", jdomains, doc.GetAllocator()); ret.append(makeStringFromDocument(doc)); + } else { + map err; + err["error"] = "No or unknown command given"; + return ret+returnJSONObject(err); } if(!callback.empty()) {