fix: adjust reset proxy
This commit is contained in:
parent
20a194b49a
commit
b635e64803
@ -68,7 +68,7 @@ impl Sysopt {
|
|||||||
self.cur_sysproxy.as_ref().unwrap().set_system_proxy()?;
|
self.cur_sysproxy.as_ref().unwrap().set_system_proxy()?;
|
||||||
}
|
}
|
||||||
|
|
||||||
// launchs the system proxy guard
|
// run the system proxy guard
|
||||||
self.guard_proxy();
|
self.guard_proxy();
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@ -99,29 +99,28 @@ impl Sysopt {
|
|||||||
|
|
||||||
/// reset the sysproxy
|
/// reset the sysproxy
|
||||||
pub fn reset_sysproxy(&mut self) -> Result<()> {
|
pub fn reset_sysproxy(&mut self) -> Result<()> {
|
||||||
if self.cur_sysproxy.is_none() {
|
let cur = self.cur_sysproxy.take();
|
||||||
return Ok(());
|
|
||||||
|
if let Some(mut old) = self.old_sysproxy.take() {
|
||||||
|
// 如果原代理和当前代理 端口一致,就disable关闭,否则就恢复原代理设置
|
||||||
|
// 当前没有设置代理的时候,不确定旧设置是否和当前一致,全关了
|
||||||
|
let port_same = cur.map_or(true, |cur| old.port == cur.port);
|
||||||
|
|
||||||
|
if old.enable && port_same {
|
||||||
|
old.enable = false;
|
||||||
|
log::info!(target: "app", "reset proxy by disabling the original proxy");
|
||||||
|
} else {
|
||||||
|
log::info!(target: "app", "reset proxy to the original proxy");
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut cur = self.cur_sysproxy.take().unwrap();
|
old.set_system_proxy()?;
|
||||||
|
} else if let Some(mut cur) = cur {
|
||||||
match self.old_sysproxy.take() {
|
// 没有原代理,就按现在的代理设置disable即可
|
||||||
Some(old) => {
|
log::info!(target: "app", "reset proxy by disabling the current proxy");
|
||||||
// 如果原代理设置和当前的设置是一样的,需要关闭
|
|
||||||
// 否则就恢复原代理设置
|
|
||||||
if old.enable && old.host == cur.host && old.port == cur.port {
|
|
||||||
cur.enable = false;
|
cur.enable = false;
|
||||||
cur.set_system_proxy()?;
|
cur.set_system_proxy()?;
|
||||||
} else {
|
} else {
|
||||||
old.set_system_proxy()?;
|
log::info!(target: "app", "reset proxy with no action");
|
||||||
}
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
if cur.enable {
|
|
||||||
cur.enable = false;
|
|
||||||
cur.set_system_proxy()?;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user