From 4f56d6957a49266d36960b50b00d16f3fba03733 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Wed, 16 Sep 2026 14:18:03 +0800 Subject: [PATCH] pin the webrtc crate to the fork that exposes max_binding_requests The hbb_common bump before this one calls SettingEngine::set_ice_max_binding_requests(), which the 0.13.0 release on crates.io does not have: only webrtc-util and webrtc-sctp were patched to the fork, so the webrtc crate itself still came from the registry and the build stopped at that call. The three patches now point at the same fork revision, one commit past the one they were on, which adds the setter. The webrtc crate depends on its siblings by path, so patching it moves the rest of that workspace to the fork as well; the fork is upstream v0.13.0 with changes to sctp and to this setter only, so those crates carry the same code they did from the registry. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab --- Cargo.lock | 43 +++++++++++++++---------------------------- Cargo.toml | 7 +++++-- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 096b75685..09ca9b738 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4121,8 +4121,7 @@ dependencies = [ [[package]] name = "interceptor" version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac0781c825d602095113772e389ef0607afcb869ae0e68a590d8e0799cdcef8" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "async-trait", "bytes", @@ -7008,8 +7007,7 @@ dependencies = [ [[package]] name = "rtcp" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9689528bf3a9eb311fd938d05516dd546412f9ce4fffc8acfc1db27cc3dbf72" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "bytes", "thiserror 1.0.61", @@ -7019,8 +7017,7 @@ dependencies = [ [[package]] name = "rtp" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54733451a67d76caf9caa07a7a2cec6871ea9dda92a7847f98063d459200f4b" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "bytes", "memchr", @@ -7465,8 +7462,7 @@ dependencies = [ [[package]] name = "sdp" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd277015eada44a0bb810a4b84d3bf6e810573fa62fb442f457edf6a1087a69" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "rand 0.8.5", "substring", @@ -8038,8 +8034,7 @@ dependencies = [ [[package]] name = "stun" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dbc2bab375524093c143dc362a03fb6a1fb79e938391cdb21665688f88a088a" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "base64 0.22.1", "crc", @@ -8921,8 +8916,7 @@ dependencies = [ [[package]] name = "turn" version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f5aea1116456e1da71c45586b87c72e3b43164fbf435eb93ff6aa475416a9a4" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "async-trait", "base64 0.22.1", @@ -9585,8 +9579,7 @@ dependencies = [ [[package]] name = "webrtc" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24bab7195998d605c862772f90a452ba655b90a2f463c850ac032038890e367a" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "arc-swap", "async-trait", @@ -9629,8 +9622,7 @@ dependencies = [ [[package]] name = "webrtc-data" version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e97b932854da633a767eff0cc805425a2222fc6481e96f463e57b015d949d1d" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "bytes", "log", @@ -9644,8 +9636,7 @@ dependencies = [ [[package]] name = "webrtc-dtls" version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ccbe4d9049390ab52695c3646c1395c877e16c15fb05d3bda8eee0c7351711c" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "aes", "aes-gcm", @@ -9681,8 +9672,7 @@ dependencies = [ [[package]] name = "webrtc-ice" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb51bde0d790f109a15bfe4d04f1b56fb51d567da231643cb3f21bb74d678997" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "arc-swap", "async-trait", @@ -9706,8 +9696,7 @@ dependencies = [ [[package]] name = "webrtc-mdns" version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "979cc85259c53b7b620803509d10d35e2546fa505d228850cbe3f08765ea6ea8" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "log", "socket2 0.5.10", @@ -9719,8 +9708,7 @@ dependencies = [ [[package]] name = "webrtc-media" version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80041211deccda758a3e19aa93d6b10bc1d37c9183b519054b40a83691d13810" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "byteorder", "bytes", @@ -9732,7 +9720,7 @@ dependencies = [ [[package]] name = "webrtc-sctp" version = "0.12.0" -source = "git+https://github.com/rustdesk-org/webrtc?rev=db3b07a9dd8f195916c89c2e62a8911402b11d27#db3b07a9dd8f195916c89c2e62a8911402b11d27" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "arc-swap", "async-trait", @@ -9749,8 +9737,7 @@ dependencies = [ [[package]] name = "webrtc-srtp" version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e773f79b09b057ffbda6b03fe7b43403b012a240cf8d05d630674c3723b5bb" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "aead", "aes", @@ -9772,7 +9759,7 @@ dependencies = [ [[package]] name = "webrtc-util" version = "0.11.0" -source = "git+https://github.com/rustdesk-org/webrtc?rev=db3b07a9dd8f195916c89c2e62a8911402b11d27#db3b07a9dd8f195916c89c2e62a8911402b11d27" +source = "git+https://github.com/rustdesk-org/webrtc?rev=80d5a20532cf58f5d4d237c437a98ceb85ee40dc#80d5a20532cf58f5d4d237c437a98ceb85ee40dc" dependencies = [ "async-trait", "bitflags 1.3.2", diff --git a/Cargo.toml b/Cargo.toml index dfb93c248..3bbbf782d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -231,8 +231,11 @@ libxdo-sys = { path = "libs/libxdo-sys-stub" } # the SACK settle the rest (F-RTO), timed from the latest send, so a stall no longer resends the # whole backlog behind itself while a short lost tail still comes back at once. # Pinned by rev, not branch: a fork branch can be rewritten out from under the lockfile. -webrtc-util = { git = "https://github.com/rustdesk-org/webrtc", rev = "db3b07a9dd8f195916c89c2e62a8911402b11d27" } -webrtc-sctp = { git = "https://github.com/rustdesk-org/webrtc", rev = "db3b07a9dd8f195916c89c2e62a8911402b11d27" } +# webrtc: SettingEngine cannot reach the ICE agent's max_binding_requests, which decides how +# long the answerer keeps checking a pair that has not answered yet. +webrtc = { git = "https://github.com/rustdesk-org/webrtc", rev = "80d5a20532cf58f5d4d237c437a98ceb85ee40dc" } +webrtc-util = { git = "https://github.com/rustdesk-org/webrtc", rev = "80d5a20532cf58f5d4d237c437a98ceb85ee40dc" } +webrtc-sctp = { git = "https://github.com/rustdesk-org/webrtc", rev = "80d5a20532cf58f5d4d237c437a98ceb85ee40dc" } [package.metadata.winres] LegalCopyright = "Copyright © 2026 Purslane Tech Pte. Ltd. All rights reserved."