File tree Expand file tree Collapse file tree 1 file changed +4
-3
lines changed
Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Original file line number Diff line number Diff line change @@ -245,11 +245,12 @@ pub trait Heartbeat<N: Network>: Outbound<N> {
245245 . candidate_peers ( )
246246 . into_iter ( )
247247 . partition ( |peer| peer. last_height_seen . map ( |h| h > own_height) . unwrap_or ( false ) ) ;
248- let larger_half = num_deficient. div_ceil ( 2 ) ;
249- for peer in higher_peers. into_iter ( ) . choose_multiple ( rng, larger_half) {
248+ // We may not know of half of `num_deficient` candidates; account for it using `min`.
249+ let num_higher_peers = num_deficient. div_ceil ( 2 ) . min ( higher_peers. len ( ) ) ;
250+ for peer in higher_peers. into_iter ( ) . choose_multiple ( rng, num_higher_peers) {
250251 self . router ( ) . connect ( peer. listener_addr ) ;
251252 }
252- for peer in other_peers. into_iter ( ) . choose_multiple ( rng, num_deficient - larger_half ) {
253+ for peer in other_peers. into_iter ( ) . choose_multiple ( rng, num_deficient - num_higher_peers ) {
253254 self . router ( ) . connect ( peer. listener_addr ) ;
254255 }
255256
You can’t perform that action at this time.
0 commit comments