From e6d318488b0b405c884de93351242a453b6bcb28 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Wed, 9 Sep 2026 00:26:12 +0800 Subject: [PATCH] review: keep the legacy UI's retrying error when the peer goes silent `restarting-show` is a Flutter control event; Sciter has no case for it and falls through to a plain dialog, which `check_if_retry` marks non-retryable because its type is not `error`. So on that build the new detector would have replaced a timeout that reconnects on its own after 30s with a dialog waiting for a click at 8s - a regression for the one path this was meant to shorten. Send it the message the timeout already sends, so its behaviour is unchanged apart from arriving sooner. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_019aokqJuhjvB3kijXtAg5Ns --- src/client/io_loop.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/client/io_loop.rs b/src/client/io_loop.rs index 05af7b4c1..ab952dcdd 100644 --- a/src/client/io_loop.rs +++ b/src/client/io_loop.rs @@ -355,7 +355,13 @@ impl Remote { .map_or(false, |silent| silent >= KCP_PEER_SILENCE_LIMIT); if peer_gone { log::info!("Peer stopped answering, reconnecting"); + #[cfg(feature = "flutter")] self.handler.msgbox("restarting-show", "Connecting...", "Connection in progress. Please wait.", ""); + // Sciter knows no `restarting-show` and would show a dialog that + // waits for a click, where the timeout this arrives ahead of is + // retryable and reconnects on its own. Keep that message for it. + #[cfg(not(feature = "flutter"))] + self.handler.msgbox("error", "Connection Error", "Timeout", ""); break; } let elapsed = fps_instant.elapsed().as_millis();