}
try {
- return (response->getBodyAsJson());
+ auto response_list = response->getBodyAsJson();
+ if (response_list->getType() != Element::list) {
+ isc_throw(CtrlChannelError, "invalid answer: expected toplevel entry to be a list, got "
+ << Element::typeToName(response_list->getType()) << " instead");
+ }
+ return (response_list->get(0));
} catch (exception const& ex) {
isc_throw(ControlSocketError, "unparsable response: " << ex.what());
}
HttpStatusCode::OK));
ElementPtr map = Element::createMap();
map->set("received", Element::create(body->str()));
- response->setBodyAsJson(map);
+ ElementPtr response_list = Element::createList();
+ response_list->add(boost::const_pointer_cast<Element>(map));
+ response->setBodyAsJson(response_list);
response->finalize();
return (response);
}