diff --git a/src/multiplexed_socket.cpp b/src/multiplexed_socket.cpp index 9c1f9527710197018827cc3fed8f0a98deff1bfc..b34bf07f17bb9346a4715d7c76ecb2e53a295534 100644 --- a/src/multiplexed_socket.cpp +++ b/src/multiplexed_socket.cpp @@ -1214,17 +1214,15 @@ ChannelSocket::getRemoteAddress() const std::vector<std::map<std::string, std::string>> MultiplexedSocket::getChannelList() const { + std::lock_guard<std::mutex> lkSockets(pimpl_->socketsMutex); std::vector<std::map<std::string, std::string>> channelsList; - + channelsList.reserve(pimpl_->sockets.size()); for (const auto& [_, channel] : pimpl_->sockets) { - if (channel) { - std::map<std::string, std::string> channelMap; - channelMap["channel"] = std::to_string(channel->channel()); - channelMap["channelName"]= channel->name(); - channelsList.emplace_back(std::move(channelMap)); - } + channelsList.emplace_back(std::map<std::string, std::string> { + {"id", fmt::format("{:x}", channel->channel())}, + {"name", channel->name()}, + }); } - return channelsList; }