From 59b7987b1d4578b4e0309071924d9919b0b5ac2f Mon Sep 17 00:00:00 2001 From: rustdesk Date: Tue, 25 Aug 2026 14:46:04 +0800 Subject: [PATCH] bump hbb_common: name the family a WebRTC session runs over `stream_type` reaches the UI as the transport that won the race, and every other transport already carries the family in that label - the v6 punch reports `IPv6`. WebRTC does not: one label covers both families, and it is the one path whose real remote address can differ from the rendezvous-observed one the session is identified by. Refine it at the hand-off to the UI rather than at the source: five sites in client.rs compare `typ == "WebRTC"`, so widening the label there would silently move control flow. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_019UzcMTdYTEv2QbMHcTSUy3 --- libs/hbb_common | 2 +- src/client/io_loop.rs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libs/hbb_common b/libs/hbb_common index 7ea29baac..e2aa3832b 160000 --- a/libs/hbb_common +++ b/libs/hbb_common @@ -1 +1 @@ -Subproject commit 7ea29baacf0b013ee1f76bb8c7c9b5ff35958c3c +Subproject commit e2aa3832b2620d1923cf845709b5e5bf1651ccba diff --git a/src/client/io_loop.rs b/src/client/io_loop.rs index 9fc07895d..7d892648e 100644 --- a/src/client/io_loop.rs +++ b/src/client/io_loop.rs @@ -185,6 +185,14 @@ impl Remote { .unwrap() .set_connected(); let is_secured = peer.is_secured(); + // Only WebRTC needs refining: its label names the transport that won the race, + // not the family ICE ended up nominating, and it is the one path where the two + // can disagree with the address the rendezvous observed. + let stream_type = if peer.webrtc_remote_ipv6().await.unwrap_or(false) { + "WebRTC/IPv6" + } else { + stream_type + }; self.handler .set_connection_type(is_secured, direct, stream_type); // flutter -> connection_ready if !is_secured