diff --git a/src-tauri/src/core/clash.rs b/src-tauri/src/core/clash.rs index 242ad75..4d2cc0a 100644 --- a/src-tauri/src/core/clash.rs +++ b/src-tauri/src/core/clash.rs @@ -49,15 +49,16 @@ impl ClashInfo { // `external-controller` could be // "127.0.0.1:9090" or ":9090" - // "9090" or 9090 (clash do not support this) let server = match config.get(&key_server) { - Some(value) => match value { - Value::String(val_str) => match val_str.starts_with(":") { - true => Some(format!("127.0.0.1{val_str}")), - false => Some(val_str.clone()), - }, - _ => None, - }, + Some(value) => { + let val_str = value.as_str().unwrap_or(""); + + if val_str.starts_with(":") { + Some(format!("127.0.0.1{val_str}")) + } else { + Some(val_str.into()) + } + } _ => None, }; diff --git a/src-tauri/src/core/service.rs b/src-tauri/src/core/service.rs index acde126..8dbd271 100644 --- a/src-tauri/src/core/service.rs +++ b/src-tauri/src/core/service.rs @@ -139,7 +139,11 @@ impl Service { config::save_yaml(temp_path.clone(), &config, Some("# Clash Verge Temp File"))?; if info.server.is_none() { - bail!("failed to parse the server"); + if info.port.is_none() { + bail!("failed to parse config.yaml file"); + } else { + bail!("failed to parse the server"); + } } let server = info.server.unwrap();