From a393b8b1224667242580b74949374b45fcfcffb3 Mon Sep 17 00:00:00 2001
From: GyDi <segydi@foxmail.com>
Date: Sat, 12 Mar 2022 21:35:20 +0800
Subject: [PATCH] fix: parse external-controller

---
 src-tauri/src/core/clash.rs | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/src-tauri/src/core/clash.rs b/src-tauri/src/core/clash.rs
index 0091c85..4eae910 100644
--- a/src-tauri/src/core/clash.rs
+++ b/src-tauri/src/core/clash.rs
@@ -95,7 +95,18 @@ impl Clash {
 
     let server = match clash_config.get(&key_server) {
       Some(value) => match value {
-        Value::String(val_str) => Some(val_str.clone()),
+        Value::String(val_str) => {
+          // `external-controller` could be
+          // "127.0.0.1:9090" or ":9090"
+          // Todo: maybe it could support single port
+          let server = val_str.clone();
+          let server = match server.starts_with(":") {
+            true => format!("127.0.0.1{server}"),
+            false => server,
+          };
+
+          Some(server)
+        }
         _ => None,
       },
       _ => None,
@@ -258,14 +269,8 @@ impl Clash {
     config::save_yaml(temp_path.clone(), &config, Some("# Clash Verge Temp File"))?;
 
     tauri::async_runtime::spawn(async move {
-      // `external-controller` could be
-      // "127.0.0.1:9090" or ":9090"
-      // Todo: maybe it could support single port
       let server = info.server.unwrap();
-      let server = match server.starts_with(":") {
-        true => format!("http://127.0.0.1{server}/configs"),
-        false => format!("http://{server}/configs"),
-      };
+      let server = format!("http://{server}/configs");
 
       let mut headers = HeaderMap::new();
       headers.insert("Content-Type", "application/json".parse().unwrap());
-- 
GitLab