mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-06 03:13:44 +08:00
parent
c4a5c356f7
commit
d085da4dbf
@ -105,6 +105,22 @@ impl CoreManager {
|
||||
sleep(Duration::from_millis(500)).await;
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
let enable_tun = Config::verge().latest().enable_tun_mode.clone();
|
||||
let enable_tun = enable_tun.unwrap_or(false);
|
||||
log::debug!(target: "app", "try to set system dns");
|
||||
if enable_tun {
|
||||
let script = include_str!("./script/set_dns.sh");
|
||||
match (|| async { Command::new("bash").args([script]).output() })().await {
|
||||
Ok(_) => return Ok(()),
|
||||
Err(err) => {
|
||||
log::error!(target: "app", "{err}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
{
|
||||
use super::win_service;
|
||||
@ -247,6 +263,22 @@ impl CoreManager {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
let enable_tun = Config::verge().latest().enable_tun_mode.clone();
|
||||
let enable_tun = enable_tun.unwrap_or(false);
|
||||
log::debug!(target: "app", "try to unset system dns");
|
||||
if enable_tun {
|
||||
let script = include_str!("./script/unset_dns.sh");
|
||||
match (|| async { Command::new("bash").args([script]).output() })().await {
|
||||
Ok(_) => return Ok(()),
|
||||
Err(err) => {
|
||||
log::error!(target: "app", "{err}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let mut sidecar = self.sidecar.lock();
|
||||
if let Some(child) = sidecar.take() {
|
||||
log::debug!(target: "app", "stop the core by sidecar");
|
||||
|
5
src-tauri/src/core/script/set_dns.sh
Normal file
5
src-tauri/src/core/script/set_dns.sh
Normal file
@ -0,0 +1,5 @@
|
||||
nic=$(route -n get default | grep "interface" | awk '{print $2}')
|
||||
|
||||
hardware_port=$(networksetup -listallhardwareports | awk -v dev="$nic" '/Hardware Port/{port=$3} /Device:/{if ($2 == dev) {print port; exit}}')
|
||||
|
||||
networksetup -setdnsservers $hardware_port 192.18.0.2
|
5
src-tauri/src/core/script/unset_dns.sh
Normal file
5
src-tauri/src/core/script/unset_dns.sh
Normal file
@ -0,0 +1,5 @@
|
||||
nic=$(route -n get default | grep "interface" | awk '{print $2}')
|
||||
|
||||
hardware_port=$(networksetup -listallhardwareports | awk -v dev="$nic" '/Hardware Port/{port=$3} /Device:/{if ($2 == dev) {print port; exit}}')
|
||||
|
||||
networksetup -setdnsservers $hardware_port Empty
|
Loading…
x
Reference in New Issue
Block a user