mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-06 03:13:44 +08:00
fix: system proxy cannot be closed on mac
This commit is contained in:
parent
f7b1da7557
commit
d5d39e1c2a
@ -76,7 +76,7 @@ impl Sysopt {
|
|||||||
.unwrap_or(Config::clash().data().get_mixed_port());
|
.unwrap_or(Config::clash().data().get_mixed_port());
|
||||||
let pac_port = IVerge::get_singleton_port();
|
let pac_port = IVerge::get_singleton_port();
|
||||||
|
|
||||||
let (enable, pac) = {
|
let (sys_enable, pac_enable) = {
|
||||||
let verge = Config::verge();
|
let verge = Config::verge();
|
||||||
let verge = verge.latest();
|
let verge = verge.latest();
|
||||||
(
|
(
|
||||||
@ -88,25 +88,36 @@ impl Sysopt {
|
|||||||
#[cfg(not(target_os = "windows"))]
|
#[cfg(not(target_os = "windows"))]
|
||||||
{
|
{
|
||||||
let mut sys = Sysproxy {
|
let mut sys = Sysproxy {
|
||||||
enable,
|
enable: false,
|
||||||
host: String::from("127.0.0.1"),
|
host: String::from("127.0.0.1"),
|
||||||
port,
|
port,
|
||||||
bypass: get_bypass(),
|
bypass: get_bypass(),
|
||||||
};
|
};
|
||||||
let mut auto = Autoproxy {
|
let mut auto = Autoproxy {
|
||||||
enable,
|
enable: false,
|
||||||
url: format!("http://127.0.0.1:{pac_port}/commands/pac"),
|
url: format!("http://127.0.0.1:{pac_port}/commands/pac"),
|
||||||
};
|
};
|
||||||
if pac {
|
|
||||||
|
if !sys_enable && !pac_enable {
|
||||||
|
sys.set_system_proxy()?;
|
||||||
|
auto.set_auto_proxy()?;
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
if pac_enable {
|
||||||
sys.enable = false;
|
sys.enable = false;
|
||||||
auto.enable = true;
|
auto.enable = true;
|
||||||
sys.set_system_proxy()?;
|
sys.set_system_proxy()?;
|
||||||
auto.set_auto_proxy()?;
|
auto.set_auto_proxy()?;
|
||||||
} else {
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
if sys_enable {
|
||||||
auto.enable = false;
|
auto.enable = false;
|
||||||
sys.enable = true;
|
sys.enable = true;
|
||||||
auto.set_auto_proxy()?;
|
auto.set_auto_proxy()?;
|
||||||
sys.set_system_proxy()?;
|
sys.set_system_proxy()?;
|
||||||
|
return Ok(());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user