node: Don't panic if peer disconnected

This commit is contained in:
Alexis Sellier 2023-04-12 16:51:57 +02:00
parent 8c92282578
commit 17651e259d
No known key found for this signature in database
1 changed files with 5 additions and 4 deletions

View File

@ -395,13 +395,14 @@ where
} }
fn flush(&mut self, remote: NodeId, stream: StreamId) { fn flush(&mut self, remote: NodeId, stream: StreamId) {
let (fd, peer) = self let Some((fd, peer)) = self
.peers .peers
.iter() .iter()
.find(|(_, peer)| peer.id() == Some(&remote)) .find(|(_, peer)| peer.id() == Some(&remote))
.map(|(fd, peer)| (*fd, peer)) .map(|(fd, peer)| (*fd, peer)) else {
.unwrap_or_else(|| panic!("Peer {remote} was expected to be known to the transport")); log::warn!(target: "wire", "Peer {remote} is not known; ignoring flush");
return;
};
let Peer::Connected { streams, link, .. } = peer else { let Peer::Connected { streams, link, .. } = peer else {
log::warn!(target: "wire", "Peer {remote} is not connected; ignoring flush"); log::warn!(target: "wire", "Peer {remote} is not connected; ignoring flush");
return; return;