aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJake McGinty <me@jake.su>2018-04-02 00:48:11 -0700
committerJake McGinty <me@jake.su>2018-04-02 00:48:11 -0700
commit2c6d8edd168ff7f7f8ee085658540518ca99aca1 (patch)
tree9c0807ac59be6b74587b9f1b89d428beaf112ec5 /src
parentclippy: remove unnecessary iter() (diff)
downloadwireguard-rs-2c6d8edd168ff7f7f8ee085658540518ca99aca1.tar.xz
wireguard-rs-2c6d8edd168ff7f7f8ee085658540518ca99aca1.zip
config: return error when trying to remove nonexistent peer
Diffstat (limited to 'src')
-rw-r--r--src/interface/config.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/interface/config.rs b/src/interface/config.rs
index 4836862..3dda7a9 100644
--- a/src/interface/config.rs
+++ b/src/interface/config.rs
@@ -250,7 +250,6 @@ impl ConfigurationService {
let _ = state.pubkey_map.insert(info.pub_key, peer_ref.clone());
state.router.add_allowed_ips(&info.allowed_ips, &peer_ref);
};
-
},
UpdateEvent::RemoveAllPeers => {
state.pubkey_map.clear();
@@ -258,17 +257,15 @@ impl ConfigurationService {
state.router.clear();
},
UpdateEvent::RemovePeer(pub_key) => {
- if let Some(peer_ref) = state.pubkey_map.remove(&pub_key) {
- let peer = peer_ref.borrow();
- let indices = peer.get_mapped_indices();
+ let peer_ref = state.pubkey_map.remove(&pub_key)
+ .ok_or_else(|| err_msg("trying to remove nonexistent peer"))?;
+ let peer = peer_ref.borrow();
+ let indices = peer.get_mapped_indices();
- for index in indices {
- let _ = state.index_map.remove(&index);
- }
- state.router.remove_allowed_ips(&peer.info.allowed_ips);
- } else {
- info!("RemovePeer request for nonexistent peer.");
+ for index in indices {
+ let _ = state.index_map.remove(&index);
}
+ state.router.remove_allowed_ips(&peer.info.allowed_ips);
},
}
Ok(())