diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-11-25 13:33:00 +0100 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-11-25 13:33:00 +0100 |
commit | f228b6f98b141940a3302d4cd1978f56f5edb13e (patch) | |
tree | f0486d26f494ce7f5d507205aa5cd475d05385c1 /src/wireguard/wireguard.rs | |
parent | Make IO traits suitable for Tun events (up/down) (diff) | |
download | wireguard-rs-f228b6f98b141940a3302d4cd1978f56f5edb13e.tar.xz wireguard-rs-f228b6f98b141940a3302d4cd1978f56f5edb13e.zip |
Enable up/down from configuration interface
Diffstat (limited to '')
-rw-r--r-- | src/wireguard/wireguard.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/wireguard/wireguard.rs b/src/wireguard/wireguard.rs index 41f6857..61f6428 100644 --- a/src/wireguard/wireguard.rs +++ b/src/wireguard/wireguard.rs @@ -147,6 +147,9 @@ impl<T: tun::Tun, B: udp::UDP> Wireguard<T, B> { // ensure exclusive access (to avoid race with "up" call) let peers = self.peers.write(); + // set mtu + self.state.mtu.store(0, Ordering::Relaxed); + // avoid tranmission from router self.router.down(); @@ -158,10 +161,13 @@ impl<T: tun::Tun, B: udp::UDP> Wireguard<T, B> { /// Brings the WireGuard device up. /// Usually called when the associated interface is brought up. - pub fn up(&self) { + pub fn up(&self, mtu: usize) { // ensure exclusive access (to avoid race with "down" call) let peers = self.peers.write(); + // set mtu + self.state.mtu.store(mtu, Ordering::Relaxed); + // enable tranmission from router self.router.up(); @@ -338,10 +344,6 @@ impl<T: tun::Tun, B: udp::UDP> Wireguard<T, B> { }); } - pub fn set_mtu(&self, mtu: usize) { - self.mtu.store(mtu, Ordering::Relaxed); - } - pub fn set_writer(&self, writer: B::Writer) { // TODO: Consider unifying these and avoid Clone requirement on writer *self.state.send.write() = Some(writer.clone()); |