/
pushamp
/
PACman
Обзор
Документация
Войти
/
pushamp
/
PACman
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
src/proxy.rs
45 строк
1 KB
Dmitry Zhiltsov
feat(core): Init commit
19 фев 2026, 18:01
19 фев 2026, 18:01
1fadda9
Код
Авторство
О чём код?
use std::process::Command; pub fn check_vpn_interface(name: &str) -> bool { match Command::new("ifconfig").arg(name).output() { Ok(output) => output.status.success(), Err(e) => { crate::logging::log_error(&format!("ifconfig error: {e}")); false } } } pub fn enable_proxy(service: &str, pac_url: &str) -> Result<(), String> { let output = Command::new("networksetup") .args(["-setautoproxyurl", service, pac_url]) .output() .map_err(|e| format!("networksetup exec: {e}"))?; if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr); let msg = format!("networksetup -setautoproxyurl failed: {stderr}"); crate::logging::log_error(&msg); return Err(msg); } crate::logging::log_info(&format!("Proxy enabled for {service} → {pac_url}")); Ok(()) } pub fn disable_proxy(service: &str) -> Result<(), String> { let output = Command::new("networksetup") .args(["-setautoproxystate", service, "off"]) .output() .map_err(|e| format!("networksetup exec: {e}"))?; if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr); let msg = format!("networksetup -setautoproxystate failed: {stderr}"); crate::logging::log_error(&msg); return Err(msg); } crate::logging::log_info(&format!("Proxy disabled for {service}")); Ok(()) }