From c4134171965c59c427b99307a5765eb44e34e609 Mon Sep 17 00:00:00 2001 From: Mathias Hall-Andersen Date: Wed, 30 Oct 2019 16:29:31 +0100 Subject: Remove unused dependencies --- src/wireguard/constants.rs | 2 +- src/wireguard/router/mod.rs | 3 +-- src/wireguard/router/workers.rs | 18 ++++++++++++++++-- 3 files changed, 18 insertions(+), 5 deletions(-) (limited to 'src/wireguard') diff --git a/src/wireguard/constants.rs b/src/wireguard/constants.rs index 72de8d9..ec60801 100644 --- a/src/wireguard/constants.rs +++ b/src/wireguard/constants.rs @@ -1,7 +1,7 @@ use std::time::Duration; use std::u64; -pub const REKEY_AFTER_MESSAGES: u64 = u64::MAX - (1 << 16); +pub const REKEY_AFTER_MESSAGES: u64 = 1 << 60; pub const REJECT_AFTER_MESSAGES: u64 = u64::MAX - (1 << 4); pub const REKEY_AFTER_TIME: Duration = Duration::from_secs(120); diff --git a/src/wireguard/router/mod.rs b/src/wireguard/router/mod.rs index f3565e2..354700a 100644 --- a/src/wireguard/router/mod.rs +++ b/src/wireguard/router/mod.rs @@ -14,8 +14,7 @@ mod tests; use messages::TransportHeader; use std::mem; -use super::constants::REJECT_AFTER_MESSAGES; -use super::constants::REKEY_AFTER_MESSAGES; +use super::constants::*; pub const SIZE_MESSAGE_PREFIX: usize = mem::size_of::(); pub const CAPACITY_MESSAGE_POSTFIX: usize = workers::SIZE_TAG; diff --git a/src/wireguard/router/workers.rs b/src/wireguard/router/workers.rs index 3d85188..2a12000 100644 --- a/src/wireguard/router/workers.rs +++ b/src/wireguard/router/workers.rs @@ -1,5 +1,6 @@ use std::sync::mpsc::Receiver; use std::sync::Arc; +use std::time::Instant; use futures::sync::oneshot; use futures::*; @@ -16,7 +17,9 @@ use super::messages::{TransportHeader, TYPE_TRANSPORT}; use super::peer::PeerInner; use super::route::check_route; use super::types::Callbacks; -use super::REJECT_AFTER_MESSAGES; + +use super::{KEEPALIVE_TIMEOUT, REJECT_AFTER_TIME, REKEY_TIMEOUT}; +use super::{REJECT_AFTER_MESSAGES, REKEY_AFTER_MESSAGES, REKEY_AFTER_TIME}; use super::super::types::KeyPair; use super::super::{bind, tun, Endpoint}; @@ -51,11 +54,17 @@ pub type JobInbound> = ( pub type JobOutbound = oneshot::Receiver; +/* TODO: Replace with run-queue + */ pub fn worker_inbound>( device: Arc>, // related device peer: Arc>, // related peer receiver: Receiver>, ) { + fn keep_key_fresh(keypair: &KeyPair) -> bool { + Instant::now() - keypair.birth > REJECT_AFTER_TIME - KEEPALIVE_TIMEOUT - REKEY_TIMEOUT + } + loop { // fetch job let (state, endpoint, rx) = match receiver.recv() { @@ -135,13 +144,16 @@ pub fn worker_inbound>( device: Arc>, // related device peer: Arc>, // related peer receiver: Receiver, ) { fn keep_key_fresh(keypair: &KeyPair, counter: u64) -> bool { - false + counter > REKEY_AFTER_MESSAGES + || (keypair.initiator && Instant::now() - keypair.birth > REKEY_AFTER_TIME) } loop { @@ -158,6 +170,7 @@ pub fn worker_outbound = &*device.outbound.read(); @@ -210,6 +223,7 @@ pub fn worker_parallel(receiver: Receiver) { .expect("earlier code should ensure that there is ample space"); // set header fields + debug_assert!(job.counter < REJECT_AFTER_MESSAGES); header.f_type.set(TYPE_TRANSPORT); header.f_receiver.set(job.keypair.send.id); header.f_counter.set(job.counter); -- cgit v1.2.3-59-g8ed1b