Skip to content

Commit cc8f86d

Browse files
committed
fix: walk to always-allowed if we aren't connected to one yet
1 parent e6ae325 commit cc8f86d

File tree

1 file changed

+9
-2
lines changed
  • stackslib/src/net/neighbors

1 file changed

+9
-2
lines changed

stackslib/src/net/neighbors/mod.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,14 @@ impl PeerNetwork {
213213
&self.local_peer, self.walk_attempts
214214
);
215215

216+
let (num_always_connected, total_always_connected) = self
217+
.count_connected_always_allowed_peers()
218+
.unwrap_or((0, 0));
219+
216220
// always ensure we're connected to always-allowed outbound peers
217-
let walk_res = if ibd {
218-
// always connect to bootstrap peers if in IBD
221+
let walk_res = if ibd || (num_always_connected == 0 && total_always_connected > 0) {
222+
// always connect to bootstrap peers if in IBD, or if we're not connected to an
223+
// always-allowed peer already
219224
NeighborWalk::instantiate_walk_to_always_allowed(
220225
self.get_neighbor_walk_db(),
221226
self.get_neighbor_comms(),
@@ -309,6 +314,8 @@ impl PeerNetwork {
309314
debug!("{:?}: not connected to any always-allowed peers; forcing a walk reset to try and fix this", &self.local_peer);
310315
self.reset_walk();
311316

317+
// TODO: force choosing an always-allowed peer!
318+
//
312319
need_new_peers = true;
313320
}
314321

0 commit comments

Comments
 (0)