@@ -1075,7 +1075,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
1075
1075
let peers = & mut peers. peers ;
1076
1076
1077
1077
peers. retain ( |descriptor, peer| {
1078
- if peer. awaiting_pong == true {
1078
+ if peer. awaiting_pong {
1079
1079
peers_needing_send. remove ( descriptor) ;
1080
1080
match peer. their_node_id {
1081
1081
Some ( node_id) => {
@@ -1084,10 +1084,8 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
1084
1084
} ,
1085
1085
None => { }
1086
1086
}
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
1091
1089
return true ;
1092
1090
}
1093
1091
@@ -1100,12 +1098,8 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
1100
1098
let mut descriptor_clone = descriptor. clone ( ) ;
1101
1099
self . do_attempt_write_data ( & mut descriptor_clone, peer) ;
1102
1100
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
1109
1103
} ) ;
1110
1104
}
1111
1105
}
@@ -1233,8 +1227,7 @@ mod tests {
1233
1227
assert_eq ! ( peers[ 0 ] . peers. lock( ) . unwrap( ) . peers. len( ) , 1 ) ;
1234
1228
1235
1229
// 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 ) ;
1239
1232
}
1240
1233
}
0 commit comments