Fix admin rename payload and harden RustDesk ID sync
This commit is contained in:
parent
bd1bd4bef1
commit
f7ad7f6a17
4 changed files with 146 additions and 6 deletions
|
|
@ -207,26 +207,64 @@ pub fn ensure_rustdesk(
|
|||
}
|
||||
};
|
||||
|
||||
let mut final_id = reported_id.clone();
|
||||
|
||||
if let Some(expected) = custom_id.as_ref() {
|
||||
if expected != &reported_id {
|
||||
log_event(&format!(
|
||||
"ID retornado difere do determinístico ({expected}) -> aplicando {reported_id}"
|
||||
"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) => {
|
||||
log_event(&format!(
|
||||
"Falha ao consultar ID após reaplicação: {error}; forçando persistência do determinístico nos perfis"
|
||||
));
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(error) => {
|
||||
log_event(&format!(
|
||||
"Falha ao reaplicar ID determinístico ({expected}): {error}; persistindo determinístico nos perfis mesmo assim"
|
||||
));
|
||||
false
|
||||
}
|
||||
};
|
||||
|
||||
if !reapplied {
|
||||
final_id = expected.clone();
|
||||
}
|
||||
}
|
||||
}
|
||||
ensure_remote_id_files(&reported_id);
|
||||
|
||||
ensure_remote_id_files(&final_id);
|
||||
|
||||
let version = query_version(&exe_path).ok().or(installed_version);
|
||||
|
||||
let result = RustdeskProvisioningResult {
|
||||
id: reported_id.clone(),
|
||||
id: final_id.clone(),
|
||||
password: password.clone(),
|
||||
installed_version: version.clone(),
|
||||
updated: freshly_installed,
|
||||
last_provisioned_at: Utc::now().timestamp_millis(),
|
||||
};
|
||||
|
||||
log_event(&format!("Provisionamento concluído. ID final: {reported_id}. Versão: {:?}", version));
|
||||
log_event(&format!("Provisionamento concluído. ID final: {final_id}. Versão: {:?}", version));
|
||||
|
||||
Ok(result)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue