Skip to content
Snippets Groups Projects

Refactor commands in handle_command for less redundancy in error handling

1 file
+ 19
15
Compare changes
  • Side-by-side
  • Inline
+ 19
15
@@ -447,21 +447,15 @@ where
listener_id,
sender,
} => {
if let Some(listener) = self.listeners.get(&listener_id) {
let res = self.swarm.remove_listener(*listener);
debug!("sending result {}", res);
if sender.send(Ok(res)).is_err() {
error!("Could not send remove listener");
}
} else {
error!("Listener {} not found", listener_id);
let err = BadListener(format!("Listener {} not found", listener_id));
debug!("sending error {}", err);
if sender.send(Err(Box::new(err))).is_err() {
error!("Could not send result");
}
if sender
.send(
self.remove_listener(listener_id)
.await
.map_err(|err| err.into()),
)
.is_err()
{
error!("Could not send the result of the remove_listener operation")
}
}
DragoonCommand::GetConnectedPeers { sender } => {
@@ -642,6 +636,16 @@ where
// Ok(id)
// }
async fn remove_listener(&mut self, listener_id: u64) -> Result<bool> {
if let Some(listener) = self.listeners.get(&listener_id) {
Ok(self.swarm.remove_listener(*listener))
} else {
let err_msg = format!("Listener {} not found", listener_id);
error!(err_msg);
Err(BadListener(err_msg).into())
}
}
async fn dial(&mut self, multiaddr: String) -> Result<()> {
if let Ok(addr) = multiaddr.parse::<Multiaddr>() {
match self.swarm.dial(addr) {
Loading