File tree Expand file tree Collapse file tree 2 files changed +4
-1
lines changed
Expand file tree Collapse file tree 2 files changed +4
-1
lines changed Original file line number Diff line number Diff line change @@ -301,6 +301,7 @@ impl PeerNetworkManager {
301301 }
302302 Err ( e) => {
303303 log:: warn!( "Handshake failed with {}: {}" , addr, e) ;
304+ pool. remove_peer ( & addr) . await ;
304305 // Update reputation for handshake failure
305306 reputation_manager
306307 . update_reputation (
@@ -316,6 +317,7 @@ impl PeerNetworkManager {
316317 }
317318 Err ( e) => {
318319 log:: debug!( "Failed to connect to {}: {}" , addr, e) ;
320+ pool. remove_peer ( & addr) . await ;
319321 // Minor reputation penalty for connection failure
320322 reputation_manager
321323 . update_reputation (
Original file line number Diff line number Diff line change @@ -61,8 +61,9 @@ impl PeerPool {
6161 Ok ( ( ) )
6262 }
6363
64- /// Remove a peer from the pool
64+ /// Remove a peer from the pool and clear connecting state
6565 pub async fn remove_peer ( & self , addr : & SocketAddr ) -> Option < Arc < RwLock < Peer > > > {
66+ self . connecting . write ( ) . await . remove ( addr) ;
6667 let removed = self . peers . write ( ) . await . remove ( addr) ;
6768 if removed. is_some ( ) {
6869 log:: info!( "Removed peer {}" , addr) ;
You can’t perform that action at this time.
0 commit comments