From a1b50aca26345756e79702b7039abf04eac7983c Mon Sep 17 00:00:00 2001 From: Mathias Hall-Andersen Date: Tue, 27 Aug 2019 22:30:24 +0200 Subject: Add confirm_key stub --- src/router/peer.rs | 10 ++++++++++ src/router/workers.rs | 12 ++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/router/peer.rs b/src/router/peer.rs index 9460f16..9451b2c 100644 --- a/src/router/peer.rs +++ b/src/router/peer.rs @@ -204,6 +204,16 @@ pub fn new_peer, R: Callback, K: KeyCallback>( Peer(peer) } +impl, R: Callback, K: KeyCallback> PeerInner { + pub fn confirm_key(&self, kp: Weak) { + // upgrade key-pair to strong reference + + // check it is the new unconfirmed key + + // rotate key-wheel + } +} + impl, R: Callback, K: KeyCallback> Peer { fn new(inner: PeerInner) -> Peer { Peer(Arc::new(inner)) diff --git a/src/router/workers.rs b/src/router/workers.rs index 98074e7..320f6a1 100644 --- a/src/router/workers.rs +++ b/src/router/workers.rs @@ -100,7 +100,7 @@ pub fn worker_inbound, R: Callback, K: KeyCallback< None => (), Some(buf) => match buf.status { Status::Done => { - // cast + // parse / cast let (header, packet) = match LayoutVerified::new_from_prefix(&buf.msg[..]) { Some(v) => v, @@ -121,11 +121,11 @@ pub fn worker_inbound, R: Callback, K: KeyCallback< } // check for confirms key - if state.confirmed.swap(true, Ordering::SeqCst) { - // TODO: confirm key + if !state.confirmed.swap(true, Ordering::SeqCst) { + peer.confirm_key(state.keypair.clone()); } - // write packet to TUN device + // write packet to TUN device, TODO // trigger callback debug_assert!( @@ -166,7 +166,7 @@ pub fn worker_outbound, R: Callback, K: KeyCallback None => (), Some(buf) => match buf.status { Status::Done => { - // cast + // parse / cast let (header, packet) = match LayoutVerified::new_from_prefix(&buf.msg[..]) { Some(v) => v, @@ -174,7 +174,7 @@ pub fn worker_outbound, R: Callback, K: KeyCallback }; let header: LayoutVerified<&[u8], TransportHeader> = header; - // write to UDP device + // write to UDP device, TODO let xmit = false; // trigger callback -- cgit v1.2.3-59-g8ed1b