From 2dc15df250a789f5026da146a9f21235be646480 Mon Sep 17 00:00:00 2001 From: lichon Date: Mon, 17 Nov 2025 14:55:52 +0800 Subject: [PATCH] Update src/webrtc.rs webrtc session clean fallback Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/webrtc.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/webrtc.rs b/src/webrtc.rs index 3c47798..04a68cc 100644 --- a/src/webrtc.rs +++ b/src/webrtc.rs @@ -308,7 +308,23 @@ impl WebRTCStream { sessions_lock.remove(&k); log::debug!("WebRTC session removed key: {}", k); } - Err(_e) => {} + Err(e) => { + log::error!("Failed to extract key for peer during session cleanup: {:?}", e); + // Fallback: try to remove any session associated with this peer connection + let keys_to_remove: Vec = sessions_lock.iter() + .filter_map(|(key, session)| { + if Arc::ptr_eq(&session.peer_connection, &pc_for_close2) { + Some(key.clone()) + } else { + None + } + }) + .collect(); + for k in keys_to_remove { + sessions_lock.remove(&k); + log::debug!("WebRTC session removed by fallback key: {}", k); + } + } } } _ => {}