diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-11-24 18:41:43 +0100 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-11-24 18:41:43 +0100 |
commit | 3bff078e3f1c59454d8db14e5dc7603e6fdbeaba (patch) | |
tree | da301a422eb8aa38ac7960324b8b6fe2d0909302 /src/main.rs | |
parent | Daemonization (diff) | |
download | wireguard-rs-3bff078e3f1c59454d8db14e5dc7603e6fdbeaba.tar.xz wireguard-rs-3bff078e3f1c59454d8db14e5dc7603e6fdbeaba.zip |
Make IO traits suitable for Tun events (up/down)
Diffstat (limited to '')
-rw-r--r-- | src/main.rs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index aa02321..c566f81 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,6 +6,7 @@ use log; use daemonize::Daemonize; use std::env; use std::process::exit; +use std::thread; mod configuration; mod platform; @@ -52,7 +53,7 @@ fn main() { }); // create TUN device - let (readers, writer, mtu) = plt::Tun::create(name.as_str()).unwrap_or_else(|e| { + let (readers, writer, status) = plt::Tun::create(name.as_str()).unwrap_or_else(|e| { eprintln!("Failed to create TUN device: {}", e); exit(-3); }); @@ -78,8 +79,26 @@ fn main() { if drop_privileges {} // create WireGuard device - let wg: wireguard::Wireguard<plt::Tun, plt::Bind> = - wireguard::Wireguard::new(readers, writer, mtu); + let wg: wireguard::Wireguard<plt::Tun, plt::UDP> = wireguard::Wireguard::new(readers, writer); + + wg.set_mtu(1420); + + // start Tun event thread + /* + { + let wg = wg.clone(); + let mut status = status; + thread::spawn(move || loop { + match status.event() { + Err(_) => break, + Ok(tun::TunEvent::Up(mtu)) => { + wg.mtu.store(mtu, Ordering::Relaxed); + } + Ok(tun::TunEvent::Down) => {} + } + }); + } + */ // handle TUN updates up/down |