diff --git a/libs/surfaces/websockets/message.cc b/libs/surfaces/websockets/message.cc index eff8e48ac3..0aee14d0df 100644 --- a/libs/surfaces/websockets/message.cc +++ b/libs/surfaces/websockets/message.cc @@ -58,14 +58,16 @@ NodeStateMessage::NodeStateMessage (void* buf, size_t len) _state = NodeState (root.get ("node")); - pt::ptree addr = root.get_child ("addr", pt::ptree ()); + pt::ptree addr = pt::ptree (); + addr = root.get_child ("addr", addr); for (pt::ptree::iterator it = addr.begin (); it != addr.end (); ++it) { // throws if datatype not uint32_t _state.add_addr (boost::lexical_cast (it->second.data ())); } - pt::ptree val = root.get_child ("val", pt::ptree ()); + pt::ptree val = pt::ptree (); + val = root.get_child ("val", val); for (pt::ptree::iterator it = val.begin (); it != val.end (); ++it) { std::string val = it->second.data ();