Handle RustDesk ID fallback to reported ID

This commit is contained in:
Esdras Renan 2025-11-27 09:21:32 -03:00
parent 2e735a7df4
commit 0e9310d6e4

View file

@ -215,39 +215,39 @@ pub fn ensure_rustdesk(
"ID retornado difere do determinístico ({expected}) -> reaplicando ID determinístico" "ID retornado difere do determinístico ({expected}) -> reaplicando ID determinístico"
)); ));
let reapplied = match set_custom_id(&exe_path, expected) { let mut enforced = false;
Ok(_) => {
match query_id_with_retries(&exe_path, 3) { match set_custom_id(&exe_path, expected) {
Ok(rechecked) => { Ok(_) => match query_id_with_retries(&exe_path, 3) {
if &rechecked == expected { Ok(rechecked) => {
log_event(&format!("ID determinístico aplicado com sucesso: {rechecked}")); if &rechecked == expected {
final_id = rechecked; log_event(&format!("ID determinístico aplicado com sucesso: {rechecked}"));
true final_id = rechecked;
} else { enforced = true;
log_event(&format!( } else {
"ID ainda difere após reaplicação (esperado {expected}, reportado {rechecked}); forçando persistência do determinístico nos perfis"
));
false
}
}
Err(error) => {
log_event(&format!( 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) => { Err(error) => {
log_event(&format!( 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 { if !enforced && final_id != *expected {
final_id = expected.clone(); log_event("Aviso: não foi possível aplicar o ID determinístico; manteremos o ID real fornecido pelo serviço");
} }
} }
} }