diff --git a/src/main.rs b/src/main.rs index f01d890..b9ac7bd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,8 @@ use std::process::exit; use clap::{Arg, ArgMatches, App}; +use futures_util::future::join; + use pnet::datalink; use whoami; @@ -117,8 +119,7 @@ async fn main() { let proxy_port = args.value_of("proxy_port").unwrap().parse::().unwrap(); let proxy_ip = proxy_bind_addr.unwrap().ip(); - let proxy = start_proxy(dns1_ip, dns2_ip, proxy_ip, proxy_port); let admin = start_admin(admin_port, proxy_ip.to_string(), proxy_port, password_hash); - proxy.await; - admin.await; + let proxy = start_proxy(dns1_ip, dns2_ip, proxy_ip, proxy_port); + join(admin, proxy).await; } diff --git a/src/proxy.rs b/src/proxy.rs index 3032ead..5110c58 100644 --- a/src/proxy.rs +++ b/src/proxy.rs @@ -66,8 +66,10 @@ pub async fn start_proxy (dns1_ip : &str, } }); - Server::bind(&addr).serve(make_service); + let server = Server::bind(&addr).serve(make_service); eprintln!("Proxy listening on {}", addr); + let result = server.await; + eprintln!("Proxy await result: {:?}", result); } async fn proxy(client: Client>>,