Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
node: Don't panic if peer disconnected
Alexis Sellier committed 3 years ago
commit 17651e259dc05f74d9ff8c8530c04a681b1a77d0
parent 8c92282578dd99580bf4f01d365bddd04e9b4115
1 file changed +5 -4
modified radicle-node/src/wire/protocol.rs
@@ -395,13 +395,14 @@ where
    }

    fn flush(&mut self, remote: NodeId, stream: StreamId) {
-
        let (fd, peer) = self
+
        let Some((fd, peer)) = self
            .peers
            .iter()
            .find(|(_, peer)| peer.id() == Some(&remote))
-
            .map(|(fd, peer)| (*fd, peer))
-
            .unwrap_or_else(|| panic!("Peer {remote} was expected to be known to the transport"));
-

+
            .map(|(fd, peer)| (*fd, peer)) else {
+
                log::warn!(target: "wire", "Peer {remote} is not known; ignoring flush");
+
                return;
+
            };
        let Peer::Connected { streams, link, .. } = peer else {
            log::warn!(target: "wire", "Peer {remote} is not connected; ignoring flush");
            return;