Skip to content

Commit 67bbddb

Browse files
authored
fix: clear up failed connection attempts (#425)
Not clearing them up restricts from repeated connection attempts.
1 parent 8da78d1 commit 67bbddb

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

dash-spv/src/network/manager.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff 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(

dash-spv/src/network/pool.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff 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);

0 commit comments

Comments
 (0)