diff options
Diffstat (limited to '')
-rw-r--r-- | src/main.rs | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs index 4d34b39..e17a127 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,21 +10,35 @@ mod configuration; mod platform; mod wireguard; -use platform::tun; +use platform::tun::PlatformTun; +use platform::uapi::PlatformUAPI; +use platform::*; -use configuration::WireguardConfig; +use std::sync::Arc; +use std::thread; +use std::time::Duration; fn main() { - /* - let (mut readers, writer, mtu) = platform::TunInstance::create("test").unwrap(); - let wg = wireguard::Wireguard::new(readers, writer, mtu); - */ -} + let name = "wg0"; + + let _ = env_logger::builder().is_test(true).try_init(); + + // create UAPI socket + let uapi = plt::UAPI::bind(name).unwrap(); + + // create TUN device + let (readers, writer, mtu) = plt::Tun::create(name).unwrap(); + + // create WireGuard device + let wg: wireguard::Wireguard<plt::Tun, plt::Bind> = + wireguard::Wireguard::new(readers, writer, mtu); -/* -fn test_wg_configuration() { - let (mut readers, writer, mtu) = platform::dummy:: + // wrap in configuration interface and start UAPI server + let cfg = configuration::WireguardConfig::new(wg); + loop { + let mut stream = uapi.accept().unwrap(); + configuration::uapi::handle(&mut stream.0, &cfg); + } - let wg = wireguard::Wireguard::new(readers, writer, mtu); + thread::sleep(Duration::from_secs(600)); } -*/ |