From 7a44ee9aa076325b1086663de766a404559884da Mon Sep 17 00:00:00 2001 From: Ignotus Peverell Date: Wed, 9 Jan 2019 19:24:59 +0000 Subject: [PATCH] Force client conn shutdown on error --- p2p/src/serv.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/p2p/src/serv.rs b/p2p/src/serv.rs index 29d14aff..99a1ab82 100644 --- a/p2p/src/serv.rs +++ b/p2p/src/serv.rs @@ -86,12 +86,12 @@ impl Server { if !self.check_banned(&stream) { let sc = stream.try_clone(); if let Err(e) = self.handle_new_peer(stream) { + // in theory, should be shutdown when stream gets dropped, + // practically doesn't seem to be happening + stream.shutdown(Shutdown::Both); warn!("Error accepting peer {}: {:?}", peer_addr.to_string(), e); - break; - } else { - if let Ok(s) = sc { - connected_sockets.insert(peer_addr, s); - } + } else if let Ok(s) = sc { + connected_sockets.insert(peer_addr, s); } } // if any active socket not in our peers list, close it @@ -102,7 +102,6 @@ impl Server { } Err(e) => { warn!("Couldn't establish new client connection: {:?}", e); - break; } } if self.stop_state.lock().is_stopped() {