Merge pull request #4773 from dignow/fix/change_id_sciter
Fix/change id sciter
This commit is contained in:
commit
510ce30e5e
@ -542,6 +542,7 @@ impl UI {
|
||||
}
|
||||
|
||||
fn change_id(&self, id: String) {
|
||||
reset_async_job_status();
|
||||
let old_id = self.get_id();
|
||||
change_id_shared(id, old_id);
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ use hbb_common::{
|
||||
directories_next, log, tokio,
|
||||
};
|
||||
use hbb_common::{
|
||||
bytes::Bytes,
|
||||
config::{CONNECT_TIMEOUT, RENDEZVOUS_PORT},
|
||||
futures::future::join_all,
|
||||
rendezvous_proto::*,
|
||||
@ -64,6 +65,8 @@ lazy_static::lazy_static! {
|
||||
pub static ref SENDER : Mutex<mpsc::UnboundedSender<ipc::Data>> = Mutex::new(check_connect_status(true));
|
||||
}
|
||||
|
||||
const INIT_ASYNC_JOB_STATUS: &str = " ";
|
||||
|
||||
#[cfg(any(target_os = "android", target_os = "ios", feature = "flutter"))]
|
||||
#[inline]
|
||||
pub fn get_id() -> String {
|
||||
@ -635,13 +638,23 @@ pub fn get_uuid() -> String {
|
||||
crate::encode64(hbb_common::get_uuid())
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn get_init_async_job_status() -> String {
|
||||
INIT_ASYNC_JOB_STATUS.to_string()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn reset_async_job_status() {
|
||||
*ASYNC_JOB_STATUS.lock().unwrap() = get_init_async_job_status();
|
||||
}
|
||||
|
||||
#[cfg(any(target_os = "android", target_os = "ios", feature = "flutter"))]
|
||||
#[inline]
|
||||
pub fn change_id(id: String) {
|
||||
*ASYNC_JOB_STATUS.lock().unwrap() = " ".to_owned();
|
||||
reset_async_job_status();
|
||||
let old_id = get_id();
|
||||
std::thread::spawn(move || {
|
||||
*ASYNC_JOB_STATUS.lock().unwrap() = change_id_shared(id, old_id).to_owned();
|
||||
change_id_shared(id, old_id);
|
||||
});
|
||||
}
|
||||
|
||||
@ -1012,16 +1025,21 @@ pub(crate) async fn send_to_cm(data: &ipc::Data) {
|
||||
const INVALID_FORMAT: &'static str = "Invalid format";
|
||||
const UNKNOWN_ERROR: &'static str = "Unknown error";
|
||||
|
||||
#[inline]
|
||||
#[tokio::main(flavor = "current_thread")]
|
||||
pub async fn change_id_shared(id: String, old_id: String) -> &'static str {
|
||||
pub async fn change_id_shared(id: String, old_id: String) {
|
||||
*ASYNC_JOB_STATUS.lock().unwrap() = change_id_shared_(id, old_id).await.to_owned();
|
||||
}
|
||||
|
||||
pub async fn change_id_shared_(id: String, old_id: String) -> &'static str {
|
||||
if !hbb_common::is_valid_custom_id(&id) {
|
||||
return INVALID_FORMAT;
|
||||
}
|
||||
|
||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||
let uuid = machine_uid::get().unwrap_or("".to_owned());
|
||||
let uuid = Bytes::from(machine_uid::get().unwrap_or("".to_owned()).as_bytes().to_vec());
|
||||
#[cfg(any(target_os = "android", target_os = "ios"))]
|
||||
let uuid = crate::encode64(hbb_common::get_uuid());
|
||||
let uuid = Bytes::from(hbb_common::get_uuid());
|
||||
|
||||
if uuid.is_empty() {
|
||||
log::error!("Failed to change id, uuid is_empty");
|
||||
@ -1065,7 +1083,7 @@ async fn check_id(
|
||||
rendezvous_server: String,
|
||||
old_id: String,
|
||||
id: String,
|
||||
uuid: String,
|
||||
uuid: Bytes,
|
||||
) -> &'static str {
|
||||
if let Ok(mut socket) = hbb_common::socket_client::connect_tcp(
|
||||
crate::check_port(rendezvous_server, RENDEZVOUS_PORT),
|
||||
@ -1077,7 +1095,7 @@ async fn check_id(
|
||||
msg_out.set_register_pk(RegisterPk {
|
||||
old_id,
|
||||
id,
|
||||
uuid: uuid.into(),
|
||||
uuid,
|
||||
..Default::default()
|
||||
});
|
||||
let mut ok = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user