From 30c77b891d1d6e52b03cb6d3b10f9a3200624812 Mon Sep 17 00:00:00 2001 From: huzibaca Date: Wed, 9 Oct 2024 01:14:03 +0800 Subject: [PATCH] chore: update --- src-tauri/src/utils/resolve.rs | 56 ++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src-tauri/src/utils/resolve.rs b/src-tauri/src/utils/resolve.rs index 1dee014a..af220eee 100644 --- a/src-tauri/src/utils/resolve.rs +++ b/src-tauri/src/utils/resolve.rs @@ -47,32 +47,7 @@ pub async fn resolve_setup(app: &mut App) { log_err!(init::init_scheme()); log_err!(init::startup_script().await); // 处理随机端口 - let enable_random_port = Config::verge().latest().enable_random_port.unwrap_or(false); - - let mut port = Config::verge() - .latest() - .verge_mixed_port - .unwrap_or(Config::clash().data().get_mixed_port()); - - if enable_random_port { - port = find_unused_port().unwrap_or( - Config::verge() - .latest() - .verge_mixed_port - .unwrap_or(Config::clash().data().get_mixed_port()), - ); - } - - Config::verge().data().patch_config(IVerge { - verge_mixed_port: Some(port), - ..IVerge::default() - }); - let _ = Config::verge().data().save_file(); - let mut mapping = Mapping::new(); - mapping.insert("mixed-port".into(), port.into()); - Config::clash().data().patch_config(mapping); - let _ = Config::clash().data().save_config(); - + log_err!(resolve_random_port_config()); // 启动核心 log::trace!("init config"); @@ -309,3 +284,32 @@ pub async fn resolve_scheme(param: String) -> Result<()> { Ok(()) } + +fn resolve_random_port_config() -> Result<()> { + let verge_config = Config::verge(); + let clash_config = Config::clash(); + let enable_random_port = verge_config.latest().enable_random_port.unwrap_or(false); + + let default_port = verge_config + .latest() + .verge_mixed_port + .unwrap_or(clash_config.data().get_mixed_port()); + + let port = if enable_random_port { + find_unused_port().unwrap_or(default_port) + } else { + default_port + }; + + verge_config.data().patch_config(IVerge { + verge_mixed_port: Some(port), + ..IVerge::default() + }); + verge_config.data().save_file()?; + + let mut mapping = Mapping::new(); + mapping.insert("mixed-port".into(), port.into()); + clash_config.data().patch_config(mapping); + clash_config.data().save_config()?; + Ok(()) +}