aboutsummaryrefslogtreecommitdiffstats
path: root/src/wireguard/wireguard.rs
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2019-11-06 13:50:38 +0100
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2019-11-06 13:50:38 +0100
commit293914e47b046f862608a1af91864b6b38336aa5 (patch)
treec6851f4c0e8cd38efdcbc2aa6999395f67f1e555 /src/wireguard/wireguard.rs
parentWork on Up/Down operation on WireGuard device (diff)
downloadwireguard-rs-293914e47b046f862608a1af91864b6b38336aa5.tar.xz
wireguard-rs-293914e47b046f862608a1af91864b6b38336aa5.zip
Implement disable/enable timers
Diffstat (limited to 'src/wireguard/wireguard.rs')
-rw-r--r--src/wireguard/wireguard.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/wireguard/wireguard.rs b/src/wireguard/wireguard.rs
index 722f64a..6da428c 100644
--- a/src/wireguard/wireguard.rs
+++ b/src/wireguard/wireguard.rs
@@ -130,6 +130,9 @@ impl<T: Tun, B: Bind> Wireguard<T, B> {
// ensure exclusive access (to avoid race with "up" call)
let peers = self.peers.write();
+ // avoid tranmission from router
+ self.router.down();
+
// set all peers down (stops timers)
for peer in peers.values() {
peer.down();
@@ -142,6 +145,9 @@ impl<T: Tun, B: Bind> Wireguard<T, B> {
// ensure exclusive access (to avoid race with "down" call)
let peers = self.peers.write();
+ // enable tranmission from router
+ self.router.up();
+
// set all peers up (restarts timers)
for peer in peers.values() {
peer.up();
@@ -215,7 +221,6 @@ impl<T: Tun, B: Bind> Wireguard<T, B> {
last_handshake_sent: Mutex::new(self.state.start - TIME_HORIZON),
handshake_queued: AtomicBool::new(false),
queue: Mutex::new(self.state.queue.lock().clone()),
- keepalive_interval: AtomicU64::new(0), // disabled
rx_bytes: AtomicU64::new(0),
tx_bytes: AtomicU64::new(0),
timers: RwLock::new(Timers::dummy(&self.runner)),