From: Christian Hofstaedtler Date: Wed, 28 Aug 2013 14:12:29 +0000 (+0200) Subject: json webserver: return masters as an Array X-Git-Tag: rec-3.6.0-rc1~462^2~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e958bd6ced1279daa56e8cd55aa25f8344dde7bb;p=pdns json webserver: return masters as an Array --- diff --git a/pdns/ws.cc b/pdns/ws.cc index dc306b52b..49c95c4e9 100644 --- a/pdns/ws.cc +++ b/pdns/ws.cc @@ -513,10 +513,13 @@ string StatWebServer::jsonstat(const string& method, const string& post, const m jdi.SetObject(); jdi.AddMember("name", di.zone.c_str(), doc.GetAllocator()); jdi.AddMember("kind", di.getKindString(), doc.GetAllocator()); - string masters = boost::join(di.masters, " "); - Value jmasters; - jmasters.SetString(masters.c_str(), masters.size(), doc.GetAllocator()); - jdi.AddMember("masters", jmasters, doc.GetAllocator()); // ^^^ this makes an actual copy, otherwise the zerocopy behaviour bites us! + Value masters; + masters.SetArray(); + BOOST_FOREACH(const string& master, di.masters) { + Value value(master.c_str(), doc.GetAllocator()); + masters.PushBack(value, doc.GetAllocator()); + } + jdi.AddMember("masters", masters, doc.GetAllocator()); jdi.AddMember("serial", di.serial, doc.GetAllocator()); jdi.AddMember("notified_serial", di.notified_serial, doc.GetAllocator()); jdi.AddMember("last_check", (unsigned int) di.last_check, doc.GetAllocator());