diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-11-15 15:32:36 +0100 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-11-15 15:32:36 +0100 |
commit | 05710c455f1c759cf9bc1a1eaa6307fe564f15cc (patch) | |
tree | c671d703d0db93a9bc8f27d0e2b02d0422120352 /src/main.rs | |
parent | Initial version of full UAPI parser (diff) | |
download | wireguard-rs-05710c455f1c759cf9bc1a1eaa6307fe564f15cc.tar.xz wireguard-rs-05710c455f1c759cf9bc1a1eaa6307fe564f15cc.zip |
Update UAPI semantics for remove
Diffstat (limited to 'src/main.rs')
-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)); } -*/ |