@@ -1075,7 +1075,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
10751075 let peers = & mut peers. peers ;
10761076
10771077 peers. retain ( |descriptor, peer| {
1078- if peer. awaiting_pong == true {
1078+ if peer. awaiting_pong {
10791079 peers_needing_send. remove ( descriptor) ;
10801080 match peer. their_node_id {
10811081 Some ( node_id) => {
@@ -1084,10 +1084,8 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
10841084 } ,
10851085 None => { }
10861086 }
1087- }
1088-
1089- // The peer needs to complete its handshake before we can exchange messages
1090- if !peer. channel_encryptor . is_ready_for_encryption ( ) {
1087+ } else if !peer. channel_encryptor . is_ready_for_encryption ( ) {
1088+ // The peer needs to complete its handshake before we can exchange messages
10911089 return true ;
10921090 }
10931091
@@ -1100,12 +1098,8 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
11001098 let mut descriptor_clone = descriptor. clone ( ) ;
11011099 self . do_attempt_write_data ( & mut descriptor_clone, peer) ;
11021100
1103- if peer. awaiting_pong {
1104- false // Drop the peer
1105- } else {
1106- peer. awaiting_pong = true ;
1107- true
1108- }
1101+ peer. awaiting_pong = !peer. awaiting_pong ; // flip the condition
1102+ peer. awaiting_pong
11091103 } ) ;
11101104 }
11111105 }
@@ -1233,8 +1227,7 @@ mod tests {
12331227 assert_eq ! ( peers[ 0 ] . peers. lock( ) . unwrap( ) . peers. len( ) , 1 ) ;
12341228
12351229 // Since timer_tick_occured() is called again when awaiting_pong is true, all Peers are disconnected
1236- // TODO: simulate handshake completion to fully support ping exchange simulations
1237- // peers[0].timer_tick_occured();
1238- // assert_eq!(peers[0].peers.lock().unwrap().peers.len(), 0);
1230+ peers[ 0 ] . timer_tick_occured ( ) ;
1231+ assert_eq ! ( peers[ 0 ] . peers. lock( ) . unwrap( ) . peers. len( ) , 0 ) ;
12391232 }
12401233}
0 commit comments