Parcourir la source

fix: make port change set to system proxy immediately (#256)

Lai Zn il y a 1 an
Parent
commit
69ae86aba8
2 fichiers modifiés avec 8 ajouts et 1 suppressions
  1. 6 0
      src-tauri/src/core/sysopt.rs
  2. 2 1
      src-tauri/src/feat.rs

+ 6 - 0
src-tauri/src/core/sysopt.rs

@@ -123,6 +123,12 @@ impl Sysopt {
         sysproxy.enable = enable;
         sysproxy.bypass = bypass.unwrap_or(DEFAULT_BYPASS.into());
 
+        let port = Config::verge()
+            .latest()
+            .verge_mixed_port
+            .unwrap_or(Config::clash().data().get_mixed_port());
+        sysproxy.port = port;
+
         if registry_mode {
             #[cfg(windows)]
             sysproxy.set_system_proxy_with_registry()?;

+ 2 - 1
src-tauri/src/feat.rs

@@ -225,6 +225,7 @@ pub async fn patch_verge(patch: IVerge) -> Result<()> {
     let system_proxy = patch.enable_system_proxy;
     let proxy_bypass = patch.system_proxy_bypass;
     let language = patch.language;
+    let port = patch.verge_mixed_port;
 
     match {
         #[cfg(target_os = "windows")]
@@ -249,7 +250,7 @@ pub async fn patch_verge(patch: IVerge) -> Result<()> {
         if auto_launch.is_some() {
             sysopt::Sysopt::global().update_launch()?;
         }
-        if system_proxy.is_some() || proxy_bypass.is_some() {
+        if system_proxy.is_some() || proxy_bypass.is_some() || port.is_some() {
             sysopt::Sysopt::global().update_sysproxy()?;
             sysopt::Sysopt::global().guard_proxy();
         }