feat: WebRTC data-plane framing, DTLS binding, and pc-leak fixes

- 1-byte-header fragmentation past the 64KB SCTP cap; empty-message and clean-EOF handling
- is_relayed() via selected candidate-pair stats for the direct/relayed flag
- IdPk.dtls_fingerprint + rendezvous webrtc SDP/IceCandidate proto fields
- fix pc leaks: Weak capture breaks the state-handler Arc self-cycle; close pc on new() error paths

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
rustdesk
2026-07-22 11:17:30 +08:00
parent 1998a198ec
commit f98f3e8732
5 changed files with 494 additions and 85 deletions
+2 -2
View File
@@ -68,7 +68,7 @@ rustls-pki-types = "1.11"
rustls-native-certs = "0.8"
webpki-roots = "1.0.4"
async-recursion = "1.1"
webrtc = { version = "0.14.0", optional = true }
webrtc = { version = "0.13.0", optional = true }
libloading = "0.8"
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
@@ -81,7 +81,7 @@ protobuf-codegen = { version = "3.7" }
[dev-dependencies]
clap = "4.5.51"
webrtc = "0.14.0"
webrtc = "0.13.0"
[target.'cfg(target_os = "windows")'.dependencies]
winapi = { version = "0.3", features = [