File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed
p2p/src/channels/signaling Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ impl crate::P2pState {
3131 pub ( super ) fn webrtc_discovery_respond_with_availble_peers < Action , State > (
3232 & self ,
3333 dispatcher : & mut redux:: Dispatcher < Action , State > ,
34+ time : redux:: Timestamp ,
3435 ) where
3536 State : crate :: P2pStateTrait ,
3637 Action : crate :: P2pActionTrait < State > ,
@@ -50,9 +51,17 @@ impl crate::P2pState {
5051 } ,
5152 ) ;
5253
53- // TODO(binier): maybe randomize
54+ /// random shuffle available peers
55+ use rand:: { seq:: SliceRandom , SeedableRng } ;
56+ let mut rng = rand:: rngs:: StdRng :: seed_from_u64 ( time. into ( ) ) ;
57+ let mut available_peers_ordered = available_peers. iter ( ) . copied ( ) . collect :: < Vec < _ > > ( ) ;
58+ available_peers_ordered. shuffle ( & mut rng) ;
59+
5460 for requester in requests {
55- if let Some ( target_peer_id) = available_peers. iter ( ) . find ( |& & id| id != requester) {
61+ if let Some ( target_peer_id) = available_peers_ordered
62+ . iter ( )
63+ . find ( |& & id| id != requester && available_peers. contains ( id) )
64+ {
5665 let target_peer_id = * target_peer_id;
5766 dispatcher. push ( P2pChannelsSignalingDiscoveryAction :: DiscoveredSend {
5867 peer_id : * requester,
You can’t perform that action at this time.
0 commit comments