From 3bff078e3f1c59454d8db14e5dc7603e6fdbeaba Mon Sep 17 00:00:00 2001 From: Mathias Hall-Andersen Date: Sun, 24 Nov 2019 18:41:43 +0100 Subject: Make IO traits suitable for Tun events (up/down) --- src/main.rs | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src/main.rs') 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 = - wireguard::Wireguard::new(readers, writer, mtu); + let wg: wireguard::Wireguard = 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 -- cgit v1.2.3-59-g8ed1b