Skip to content

Commit

Permalink
feat: add log for macos
Browse files Browse the repository at this point in the history
  • Loading branch information
zzzgydi committed Feb 1, 2024
1 parent 95a2ba9 commit add5bbd
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 2 deletions.
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ keywords = ["system-proxy", "proxy", "networksetup", "gsettings"]
description = "A library for set/get system proxy. Supports Windows, macOS and linux (via gsettings)."

[dependencies]
log = "0.4"
thiserror = "1"
iptools = { version = "0.2.4", optional = true }

Expand Down
37 changes: 35 additions & 2 deletions src/macos.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,32 @@
use crate::{Error, Result, Sysproxy};
use log::debug;
use std::net::{SocketAddr, UdpSocket};
use std::{process::Command, str::from_utf8};

impl Sysproxy {
pub fn get_system_proxy() -> Result<Sysproxy> {
let service = default_network_service().or_else(|_| default_network_service_by_ns())?;
let service = default_network_service().or_else(|e| {
debug!("Failed to get network service: {:?}", e);
default_network_service_by_ns()
});
if let Err(e) = service {
debug!("Failed to get network service by networksetup: {:?}", e);
return Err(e);
}
let service = service.unwrap();
let service = service.as_str();

let mut socks = Sysproxy::get_socks(service)?;
debug!("Getting SOCKS proxy: {:?}", socks);

let http = Sysproxy::get_http(service)?;
debug!("Getting HTTP proxy: {:?}", http);

let https = Sysproxy::get_https(service)?;
debug!("Getting HTTPS proxy: {:?}", https);

let bypass = Sysproxy::get_bypass(service)?;
debug!("Getting bypass domains: {:?}", bypass);

socks.bypass = bypass;

Expand All @@ -31,12 +47,29 @@ impl Sysproxy {
}

pub fn set_system_proxy(&self) -> Result<()> {
let service = default_network_service().or_else(|_| default_network_service_by_ns())?;
let service = default_network_service().or_else(|e| {
debug!("Failed to get network service: {:?}", e);
default_network_service_by_ns()
});
if let Err(e) = service {
debug!("Failed to get network service by networksetup: {:?}", e);
return Err(e);
}
let service = service.unwrap();
let service = service.as_str();

debug!("Use network service: {}", service);

debug!("Setting SOCKS proxy");
self.set_socks(service)?;

debug!("Setting HTTP proxy");
self.set_https(service)?;

debug!("Setting HTTPS proxy");
self.set_http(service)?;

debug!("Setting bypass domains");
self.set_bypass(service)?;
Ok(())
}
Expand Down

0 comments on commit add5bbd

Please sign in to comment.