mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-04-16 23:40:32 +08:00
fix(permissions): manage umask for sidecar process in CoreManager on Unix
Co-authored-by: KaguraNaku <97681505+KaguraNaku@users.noreply.github.com>
This commit is contained in:
parent
cb5a2e7ce3
commit
cceb0a6eb4
@ -7,6 +7,8 @@ pub mod commands;
|
|||||||
|
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
use deelevate::{PrivilegeLevel, Token};
|
use deelevate::{PrivilegeLevel, Token};
|
||||||
|
#[cfg(unix)]
|
||||||
|
pub use libc;
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use sysinfo::{Networks, System};
|
use sysinfo::{Networks, System};
|
||||||
use tauri::{
|
use tauri::{
|
||||||
|
|||||||
@ -31,6 +31,8 @@ impl CoreManager {
|
|||||||
let clash_core = Config::verge().await.latest_arc().get_valid_clash_core();
|
let clash_core = Config::verge().await.latest_arc().get_valid_clash_core();
|
||||||
let config_dir = dirs::app_home_dir()?;
|
let config_dir = dirs::app_home_dir()?;
|
||||||
|
|
||||||
|
#[cfg(unix)]
|
||||||
|
let previous_mask = unsafe { tauri_plugin_clash_verge_sysinfo::libc::umask(0o007) };
|
||||||
let (mut rx, child) = app_handle
|
let (mut rx, child) = app_handle
|
||||||
.shell()
|
.shell()
|
||||||
.sidecar(clash_core.as_str())?
|
.sidecar(clash_core.as_str())?
|
||||||
@ -47,6 +49,10 @@ impl CoreManager {
|
|||||||
&IClashTemp::guard_external_controller_ipc(),
|
&IClashTemp::guard_external_controller_ipc(),
|
||||||
])
|
])
|
||||||
.spawn()?;
|
.spawn()?;
|
||||||
|
#[cfg(unix)]
|
||||||
|
unsafe {
|
||||||
|
tauri_plugin_clash_verge_sysinfo::libc::umask(previous_mask)
|
||||||
|
};
|
||||||
|
|
||||||
let pid = child.pid();
|
let pid = child.pid();
|
||||||
logging!(trace, Type::Core, "Sidecar started with PID: {}", pid);
|
logging!(trace, Type::Core, "Sidecar started with PID: {}", pid);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user