已修复,commit 8b04893。
变更: src/webrtc.rs:213 — HTTP 500 响应体不再包含原始错误信息,改为返回通用空响应体。
修复前: let resp = format!("HTTP/1.1 500 Error\r\nConnection: close\r\n\r\n{e}"…
修复方案
根因: discover_video_params 硬编码遍历 ["0","1","2","3"] 来查找 video media,但 str0m 的 Mid 是 SDP 协商决定的字符串标识符(如 "aud"、"video"),不是数字索引。若实际 mid…
修复信息
提交: fc4733f
改动: src/webrtc.rs L360 — 在 IceConnectionState::Disconnected 分支添加 return Ok(true);
原理: WebRtcInner::poll_rtc() 始终返回 Ok(false),导致上层…
修复方案
将 state_portal.rs 中两处 expect() 替换为 ok_or_else(..)? 错误传播,与函数返回类型 Result 及已有的 bail! 用法保持一致。
变更内容
**1. webrtc_paused 解包(原第 167…
修复方案 (commit 36f07c9)
Bug 已确认并修复,双重防护:
根因分析
shutdown() → enc.flush() → drain_encoder() → tx.send() 在满的 bounded(32) 通道上阻塞。由于 webrtc_rx…
修复完成
Issue 原指 flush() 中第 766 行缺少 SAFETY 注释,实际审核发现文件中共有 19 处 unsafe 缺少文档。
修复内容
1. 补全 SAFETY 注释(19 处)
- 17 个 unsafe block
- 2 个 unsafe…
修复方案
第一层:channel 断开检测(SendError)
drain_encoder() 中将 let _ = tx.send(data.to_vec()) 替换为:
if let Err(e) = tx.send(data.to_vec()) {
tracing::warn!("WebRTC…