From 0e9310d6e4125010ac8ddc879085e2ad9f171ccf Mon Sep 17 00:00:00 2001 From: Esdras Renan Date: Thu, 27 Nov 2025 09:21:32 -0300 Subject: [PATCH] Handle RustDesk ID fallback to reported ID --- apps/desktop/src-tauri/src/rustdesk.rs | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/apps/desktop/src-tauri/src/rustdesk.rs b/apps/desktop/src-tauri/src/rustdesk.rs index 00ea831..80558d8 100644 --- a/apps/desktop/src-tauri/src/rustdesk.rs +++ b/apps/desktop/src-tauri/src/rustdesk.rs @@ -215,39 +215,39 @@ pub fn ensure_rustdesk( "ID retornado difere do determinístico ({expected}) -> reaplicando ID determinístico" )); - let reapplied = match set_custom_id(&exe_path, expected) { - Ok(_) => { - match query_id_with_retries(&exe_path, 3) { - Ok(rechecked) => { - if &rechecked == expected { - log_event(&format!("ID determinístico aplicado com sucesso: {rechecked}")); - final_id = rechecked; - true - } else { - log_event(&format!( - "ID ainda difere após reaplicação (esperado {expected}, reportado {rechecked}); forçando persistência do determinístico nos perfis" - )); - false - } - } - Err(error) => { + let mut enforced = false; + + match set_custom_id(&exe_path, expected) { + Ok(_) => match query_id_with_retries(&exe_path, 3) { + Ok(rechecked) => { + if &rechecked == expected { + log_event(&format!("ID determinístico aplicado com sucesso: {rechecked}")); + final_id = rechecked; + enforced = true; + } else { log_event(&format!( - "Falha ao consultar ID após reaplicação: {error}; forçando persistência do determinístico nos perfis" + "ID ainda difere após reaplicação (esperado {expected}, reportado {rechecked}); usando ID reportado" )); - false + final_id = rechecked; } } - } + Err(error) => { + log_event(&format!( + "Falha ao consultar ID após reaplicação: {error}; usando ID reportado ({reported_id})" + )); + final_id = reported_id.clone(); + } + }, Err(error) => { log_event(&format!( - "Falha ao reaplicar ID determinístico ({expected}): {error}; persistindo determinístico nos perfis mesmo assim" + "Falha ao reaplicar ID determinístico ({expected}): {error}; usando ID reportado ({reported_id})" )); - false + final_id = reported_id.clone(); } - }; + } - if !reapplied { - final_id = expected.clone(); + if !enforced && final_id != *expected { + log_event("Aviso: não foi possível aplicar o ID determinístico; manteremos o ID real fornecido pelo serviço"); } } }