From c89caf560ab50657b8f65e51f08bc39b42ba8d7e Mon Sep 17 00:00:00 2001 From: ShineSea <50630163+ShineSea@users.noreply.github.com> Date: Mon, 8 Sep 2025 19:00:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96WebApi=20ListRtpServer?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=9E=E7=8E=B0=20(#4436)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/WebApi.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/server/WebApi.cpp b/server/WebApi.cpp index 278d524f..978bfe6c 100755 --- a/server/WebApi.cpp +++ b/server/WebApi.cpp @@ -318,8 +318,6 @@ template class ServiceController { public: using Pointer = std::shared_ptr; - std::unordered_map _map; - mutable std::recursive_mutex _mtx; void clear() { decltype(_map) copy; @@ -388,6 +386,10 @@ public: assert(it.second); return server; } + +private: + std::unordered_map _map; + mutable std::recursive_mutex _mtx; }; // 拉流代理器列表 [AUTO-TRANSLATED:6dcfb11f] @@ -1560,20 +1562,18 @@ void installWebApi() { api_regist("/index/api/listRtpServer",[](API_ARGS_MAP){ CHECK_SECRET(); - std::lock_guard lck(s_rtp_server._mtx); - for (auto &pr : s_rtp_server._map) { - auto vec = split(pr.first, "/"); + s_rtp_server.for_each([&val](const std::string &key, const RtpServer::Ptr &rtps) { + auto vec = split(key, "/"); Value obj; obj["vhost"] = vec[0]; obj["app"] = vec[1]; obj["stream_id"] = vec[2]; - auto& rtps = pr.second; obj["port"] = rtps->getPort(); obj["ssrc"] = rtps->getSSRC(); obj["tcp_mode"] = rtps->getTcpMode(); obj["only_track"] = rtps->getOnlyTrack(); val["data"].append(obj); - } + }); }); static auto start_send_rtp = [] (bool passive, API_ARGS_MAP_ASYNC) {