Skip to content

Commit

Permalink
Merge of #7853
Browse files Browse the repository at this point in the history
  • Loading branch information
mergify[bot] authored Oct 27, 2023
2 parents eb3d899 + 5f3bf47 commit fa22965
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions zebra-network/src/peer_set/initialize.rs
Original file line number Diff line number Diff line change
Expand Up @@ -896,7 +896,7 @@ where
// There weren't any peers, so try to get more peers.
debug!("demand for peers but no available candidates");

crawl(candidates, demand_tx).await?;
crawl(candidates, demand_tx, false).await?;

Ok(DemandCrawlFinished)
}
Expand All @@ -910,6 +910,7 @@ where
Ok(TimerCrawl { tick }) => {
let candidates = candidates.clone();
let demand_tx = demand_tx.clone();
let should_always_dial = active_outbound_connections.update_count() == 0;

let crawl_handle = tokio::spawn(
async move {
Expand All @@ -918,7 +919,7 @@ where
"crawling for more peers in response to the crawl timer"
);

crawl(candidates, demand_tx).await?;
crawl(candidates, demand_tx, should_always_dial).await?;

Ok(TimerCrawlFinished)
}
Expand Down Expand Up @@ -957,11 +958,12 @@ where
}

/// Try to get more peers using `candidates`, then queue a connection attempt using `demand_tx`.
/// If there were no new peers, the connection attempt is skipped.
/// If there were no new peers and `should_always_dial` is false, the connection attempt is skipped.
#[instrument(skip(candidates, demand_tx))]
async fn crawl<S>(
candidates: Arc<futures::lock::Mutex<CandidateSet<S>>>,
mut demand_tx: futures::channel::mpsc::Sender<MorePeers>,
should_always_dial: bool,
) -> Result<(), BoxError>
where
S: Service<Request, Response = Response, Error = BoxError> + Send + Sync + 'static,
Expand All @@ -976,7 +978,7 @@ where
result
};
let more_peers = match result {
Ok(more_peers) => more_peers,
Ok(more_peers) => more_peers.or_else(|| should_always_dial.then_some(MorePeers)),
Err(e) => {
info!(
?e,
Expand Down

0 comments on commit fa22965

Please sign in to comment.