mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-01-18 07:43:01 +08:00
make sure no gen_keypair more than once
This commit is contained in:
parent
da2906c95f
commit
2fbcbc6543
@ -584,15 +584,16 @@ impl Config {
|
|||||||
config.store();
|
config.store();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_sk_uuid() -> Vec<u8> {
|
// * Manually make sure no gen_keypair more than once
|
||||||
// for uuid, avoid deadlock
|
// for uuid, avoid deadlock
|
||||||
|
pub fn get_key_pair_without_lock() -> (Vec<u8>, Vec<u8>) {
|
||||||
let mut config = Config::load_::<Config>("");
|
let mut config = Config::load_::<Config>("");
|
||||||
if config.key_pair.0.is_empty() {
|
if config.key_pair.0.is_empty() {
|
||||||
let (pk, sk) = sign::gen_keypair();
|
let (pk, sk) = sign::gen_keypair();
|
||||||
config.key_pair = (sk.0.to_vec(), pk.0.into());
|
config.key_pair = (sk.0.to_vec(), pk.0.into());
|
||||||
Config::store_(&config, "");
|
Config::store_(&config, "");
|
||||||
}
|
}
|
||||||
config.key_pair.1
|
config.key_pair.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_key_pair() -> (Vec<u8>, Vec<u8>) {
|
pub fn get_key_pair() -> (Vec<u8>, Vec<u8>) {
|
||||||
|
@ -209,9 +209,16 @@ pub fn get_modified_time(path: &std::path::Path) -> SystemTime {
|
|||||||
fn gen_uuid() -> Vec<u8> {
|
fn gen_uuid() -> Vec<u8> {
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
if let Ok(id) = machine_uid::get() {
|
if let Ok(id) = machine_uid::get() {
|
||||||
return id.into();
|
id.into()
|
||||||
|
} else {
|
||||||
|
Config::get_key_pair().1
|
||||||
}
|
}
|
||||||
Config::get_sk_uuid()
|
#[cfg(any(target_os = "android", target_os = "ios"))]
|
||||||
|
Config::get_key_pair_without_lock().1
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn init_uuid() {
|
||||||
|
let _ = *UUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_uuid() -> Vec<u8> {
|
pub fn get_uuid() -> Vec<u8> {
|
||||||
|
@ -3,7 +3,7 @@ use crate::mobile::connection_manager::{self, get_clients_length, get_clients_st
|
|||||||
use crate::mobile::{self, Session};
|
use crate::mobile::{self, Session};
|
||||||
use crate::common::{make_fd_to_json};
|
use crate::common::{make_fd_to_json};
|
||||||
use flutter_rust_bridge::{StreamSink, ZeroCopyBuffer};
|
use flutter_rust_bridge::{StreamSink, ZeroCopyBuffer};
|
||||||
use hbb_common::ResultType;
|
use hbb_common::{ResultType, init_uuid};
|
||||||
use hbb_common::{
|
use hbb_common::{
|
||||||
config::{self, Config, LocalConfig, PeerConfig, ONLINE},
|
config::{self, Config, LocalConfig, PeerConfig, ONLINE},
|
||||||
fs, log,
|
fs, log,
|
||||||
@ -16,7 +16,6 @@ use std::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
fn initialize(app_dir: &str) {
|
fn initialize(app_dir: &str) {
|
||||||
*config::APP_DIR.write().unwrap() = app_dir.to_owned();
|
|
||||||
#[cfg(target_os = "android")]
|
#[cfg(target_os = "android")]
|
||||||
{
|
{
|
||||||
android_logger::init_once(
|
android_logger::init_once(
|
||||||
@ -30,6 +29,8 @@ fn initialize(app_dir: &str) {
|
|||||||
use hbb_common::env_logger::*;
|
use hbb_common::env_logger::*;
|
||||||
init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "debug"));
|
init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "debug"));
|
||||||
}
|
}
|
||||||
|
*config::APP_DIR.write().unwrap() = app_dir.to_owned();
|
||||||
|
init_uuid();
|
||||||
crate::common::test_rendezvous_server();
|
crate::common::test_rendezvous_server();
|
||||||
crate::common::test_nat_type();
|
crate::common::test_nat_type();
|
||||||
#[cfg(target_os = "android")]
|
#[cfg(target_os = "android")]
|
||||||
|
Loading…
Reference in New Issue
Block a user