From d4837d7f5c617d720c14652c46316f550678d345 Mon Sep 17 00:00:00 2001 From: artrixdotdev Date: Wed, 1 Jul 2026 15:06:42 -0700 Subject: [PATCH] fix: peer actor not closing from unrecoverable io errors --- crates/libtortillas/src/peer/actor.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/crates/libtortillas/src/peer/actor.rs b/crates/libtortillas/src/peer/actor.rs index 67b47d9..846dd24 100644 --- a/crates/libtortillas/src/peer/actor.rs +++ b/crates/libtortillas/src/peer/actor.rs @@ -112,13 +112,12 @@ impl PeerActor { use std::io::ErrorKind::*; debug!(error = ?e, "Peer errored"); match e { - PeerActorError::Io(e) | PeerActorError::ReceiveFailed(e) => { - if e.kind() == UnexpectedEof || e.kind() == ConnectionReset { - Some(Signal::Stop) - } else { - None - } - } + PeerActorError::Io(e) | PeerActorError::ReceiveFailed(e) => match e.kind() { + UnexpectedEof | ConnectionReset | ConnectionAborted => Some(Signal::Stop), + + Other | NotConnected | BrokenPipe => Some(Signal::Stop), + _ => None, + }, _ => None, } }