You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

33 lines
1.0 KiB

use tun2proxy::{Args, BoxError};
#[tokio::main]
async fn main() -> Result<(), BoxError> {
dotenvy::dotenv().ok();
let args = Args::parse_args();
// let default = format!("{}={:?},trust_dns_proto=warn", module_path!(), args.verbosity);
let default = format!("{:?},trust_dns_proto=warn", args.verbosity);
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or(default)).init();
let shutdown_token = tokio_util::sync::CancellationToken::new();
let join_handle = tokio::spawn({
let shutdown_token = shutdown_token.clone();
async move {
if let Err(err) = tun2proxy::desktop_run_async(args, shutdown_token).await {
log::error!("main loop error: {}", err);
}
}
});
ctrlc2::set_async_handler(async move {
log::info!("Ctrl-C received, exiting...");
shutdown_token.cancel();
})
.await;
if let Err(err) = join_handle.await {
log::error!("main_entry error {}", err);
}
Ok(())
}