diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-12-16 16:37:16 +0100 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-12-16 16:37:16 +0100 |
commit | 22f978f0142286b26b48a25364236436b9bad56d (patch) | |
tree | c8d4bf722e1134c8a66d821b63b7f04eec93a9b0 /src/wireguard/wireguard.rs | |
parent | Revert to crossbeam (diff) | |
download | wireguard-rs-22f978f0142286b26b48a25364236436b9bad56d.tar.xz wireguard-rs-22f978f0142286b26b48a25364236436b9bad56d.zip |
Clean dead code
Diffstat (limited to '')
-rw-r--r-- | src/wireguard/wireguard.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/wireguard/wireguard.rs b/src/wireguard/wireguard.rs index 2cd6ce4..45b1fcb 100644 --- a/src/wireguard/wireguard.rs +++ b/src/wireguard/wireguard.rs @@ -236,7 +236,9 @@ impl<T: tun::Tun, B: udp::UDP> Wireguard<T, B> { } pub fn remove_peer(&self, pk: &PublicKey) { - self.state.peers.write().remove(pk.as_bytes()); + if self.handshake.write().remove(pk).is_ok() { + self.state.peers.write().remove(pk.as_bytes()); + } } pub fn lookup_peer(&self, pk: &PublicKey) -> Option<Peer<T, B>> { @@ -258,7 +260,10 @@ impl<T: tun::Tun, B: udp::UDP> Wireguard<T, B> { } pub fn set_key(&self, sk: Option<StaticSecret>) { - self.handshake.write().set_sk(sk); + let mut handshake = self.handshake.write(); + handshake.set_sk(sk); + self.router.clear_sending_keys(); + // handshake lock is released and new handshakes can be initated } pub fn get_sk(&self) -> Option<StaticSecret> { @@ -577,7 +582,7 @@ impl<T: tun::Tun, B: udp::UDP> Wireguard<T, B> { ); // this means that a handshake response was processed or sent - peer.timers_session_derieved(); + peer.timers_session_derived(); // free any unused ids for id in peer.router.add_keypair(kp) { |