diff --git a/src/main.rs b/src/main.rs index ac67753..d62913f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,10 +5,12 @@ use std::net::IpAddr; use std::process::ExitCode; use tun2proxy::error::Error; -use tun2proxy::setup::{get_default_cidrs, Setup}; use tun2proxy::Options; use tun2proxy::{main_entry, Proxy}; +#[cfg(target_os = "linux")] +use tun2proxy::setup::{get_default_cidrs, Setup}; + /// Tunnel interface to proxy #[derive(Parser)] #[command(author, version, about = "Tunnel interface to proxy.", long_about = None)] @@ -66,22 +68,25 @@ fn main() -> ExitCode { } if let Err(e) = (|| -> Result<(), Error> { - let mut setup: Setup; - if args.setup == Some(ArgSetup::Auto) { - let bypass_tun_ip = match args.setup_ip { - Some(addr) => addr, - None => args.proxy.addr.ip(), - }; - setup = Setup::new( - &args.tun, - &bypass_tun_ip, - get_default_cidrs(), - args.setup_ip.is_some(), - ); + #[cfg(target_os = "linux")] + { + let mut setup: Setup; + if args.setup == Some(ArgSetup::Auto) { + let bypass_tun_ip = match args.setup_ip { + Some(addr) => addr, + None => args.proxy.addr.ip(), + }; + setup = Setup::new( + &args.tun, + &bypass_tun_ip, + get_default_cidrs(), + args.setup_ip.is_some(), + ); - setup.configure()?; + setup.configure()?; - setup.drop_privileges()?; + setup.drop_privileges()?; + } } main_entry(&args.tun, &args.proxy, options)?; diff --git a/src/setup.rs b/src/setup.rs index 5d9b1fe..e01b9da 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -1,3 +1,5 @@ +#![cfg(target_os = "linux")] + use crate::error::Error; use smoltcp::wire::IpCidr; use std::convert::TryFrom;