File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed
modules/peer_network_interface/src Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -192,6 +192,10 @@ impl ChainState {
192192 }
193193 }
194194
195+ pub fn clear_preferred_upstream ( & mut self ) {
196+ self . preferred_upstream = None ;
197+ }
198+
195199 pub fn next_unpublished_block ( & self ) -> Option < ( & Header , & [ u8 ] , bool ) > {
196200 let ( slot, hash) = self . unpublished_blocks . front ( ) ?;
197201 let slot_blocks = self . blocks . get ( slot) ?;
Original file line number Diff line number Diff line change @@ -177,11 +177,13 @@ impl NetworkManager {
177177 } ;
178178 warn ! ( "disconnected from {}" , peer. conn. address) ;
179179 let was_preferred = self . chain . preferred_upstream . is_some_and ( |i| i == id) ;
180- if was_preferred && let Some ( new_preferred) = self . peers . keys ( ) . next ( ) . copied ( ) {
181- self . set_preferred_upstream ( new_preferred) ;
182- }
183- if self . peers . is_empty ( ) {
184- warn ! ( "no upstream peers!" ) ;
180+ if was_preferred {
181+ if let Some ( new_preferred) = self . peers . keys ( ) . next ( ) . copied ( ) {
182+ self . set_preferred_upstream ( new_preferred) ;
183+ } else {
184+ warn ! ( "no upstream peers!" ) ;
185+ self . clear_preferred_upstream ( ) ;
186+ }
185187 }
186188 for ( requested_hash, requested_slot) in peer. reqs {
187189 let announcers = self . chain . block_announcers ( requested_slot, requested_hash) ;
@@ -214,6 +216,10 @@ impl NetworkManager {
214216 self . chain . handle_new_preferred_upstream ( id) ;
215217 }
216218
219+ fn clear_preferred_upstream ( & mut self ) {
220+ self . chain . clear_preferred_upstream ( ) ;
221+ }
222+
217223 async fn publish_blocks ( & mut self ) -> Result < ( ) > {
218224 while let Some ( ( header, body, rolled_back) ) = self . chain . next_unpublished_block ( ) {
219225 self . block_sink . announce ( header, body, rolled_back) . await ?;
You can’t perform that action at this time.
0 commit comments