Add confirm_key stub

This commit is contained in:
Mathias Hall-Andersen
2019-08-27 22:30:24 +02:00
parent 40533b9ffd
commit a1b50aca26
2 changed files with 16 additions and 6 deletions

View File

@@ -204,6 +204,16 @@ pub fn new_peer<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback<T>>(
Peer(peer) Peer(peer)
} }
impl<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback<T>> PeerInner<T, S, R, K> {
pub fn confirm_key(&self, kp: Weak<KeyPair>) {
// upgrade key-pair to strong reference
// check it is the new unconfirmed key
// rotate key-wheel
}
}
impl<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback<T>> Peer<T, S, R, K> { impl<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback<T>> Peer<T, S, R, K> {
fn new(inner: PeerInner<T, S, R, K>) -> Peer<T, S, R, K> { fn new(inner: PeerInner<T, S, R, K>) -> Peer<T, S, R, K> {
Peer(Arc::new(inner)) Peer(Arc::new(inner))

View File

@@ -100,7 +100,7 @@ pub fn worker_inbound<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback<
None => (), None => (),
Some(buf) => match buf.status { Some(buf) => match buf.status {
Status::Done => { Status::Done => {
// cast // parse / cast
let (header, packet) = let (header, packet) =
match LayoutVerified::new_from_prefix(&buf.msg[..]) { match LayoutVerified::new_from_prefix(&buf.msg[..]) {
Some(v) => v, Some(v) => v,
@@ -121,11 +121,11 @@ pub fn worker_inbound<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback<
} }
// check for confirms key // check for confirms key
if state.confirmed.swap(true, Ordering::SeqCst) { if !state.confirmed.swap(true, Ordering::SeqCst) {
// TODO: confirm key peer.confirm_key(state.keypair.clone());
} }
// write packet to TUN device // write packet to TUN device, TODO
// trigger callback // trigger callback
debug_assert!( debug_assert!(
@@ -166,7 +166,7 @@ pub fn worker_outbound<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback
None => (), None => (),
Some(buf) => match buf.status { Some(buf) => match buf.status {
Status::Done => { Status::Done => {
// cast // parse / cast
let (header, packet) = let (header, packet) =
match LayoutVerified::new_from_prefix(&buf.msg[..]) { match LayoutVerified::new_from_prefix(&buf.msg[..]) {
Some(v) => v, Some(v) => v,
@@ -174,7 +174,7 @@ pub fn worker_outbound<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback
}; };
let header: LayoutVerified<&[u8], TransportHeader> = header; let header: LayoutVerified<&[u8], TransportHeader> = header;
// write to UDP device // write to UDP device, TODO
let xmit = false; let xmit = false;
// trigger callback // trigger callback