@@ -108,16 +108,15 @@ enum InitSyncTracker{
108108}
109109
110110enum PeerState {
111- Handshake ( PeerHandshake ) ,
111+ Authenticating ( PeerHandshake ) ,
112112 Connected ( Conduit ) ,
113113}
114114
115115impl PeerState {
116116 fn is_ready_for_encryption ( & self ) -> bool {
117- if let & PeerState :: Connected ( _) = self {
118- true
119- } else {
120- false
117+ match self {
118+ & PeerState :: Connected ( _) => true ,
119+ _ => false
121120 }
122121 }
123122}
@@ -283,7 +282,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
283282
284283 let mut peers = self . peers . lock ( ) . unwrap ( ) ;
285284 if peers. peers . insert ( descriptor, Peer {
286- encryptor : PeerState :: Handshake ( handshake) ,
285+ encryptor : PeerState :: Authenticating ( handshake) ,
287286 outbound : true ,
288287 their_node_id : Some ( their_node_id. clone ( ) ) ,
289288 their_features : None ,
@@ -318,7 +317,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
318317
319318 let mut peers = self . peers . lock ( ) . unwrap ( ) ;
320319 if peers. peers . insert ( descriptor, Peer {
321- encryptor : PeerState :: Handshake ( handshake) ,
320+ encryptor : PeerState :: Authenticating ( handshake) ,
322321 outbound : false ,
323322 their_node_id : None ,
324323 their_features : None ,
@@ -469,9 +468,9 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
469468 let mut conduit_option = None ;
470469 let mut remote_pubkey_option = None ;
471470
472- if let & mut PeerState :: Handshake ( ref mut handshake) = & mut peer. encryptor {
471+ if let & mut PeerState :: Authenticating ( ref mut handshake) = & mut peer. encryptor {
473472 let ( response, conduit, remote_pubkey) = handshake. process_act ( & peer. pending_read_buffer , None ) . unwrap ( ) ;
474- peer. pending_read_buffer . drain ( .. ) ; // we read it all
473+ peer. pending_read_buffer = Vec :: new ( ) ; // empty the pending read buffer
475474
476475 if let Some ( key) = remote_pubkey {
477476 remote_pubkey_option = Some ( key) ;
@@ -543,18 +542,12 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
543542 }
544543 }
545544
546- let next_message_result = conduit. decrypt ( & peer. pending_read_buffer ) ;
547-
548- let offset = next_message_result. 1 ;
549- if offset == 0 {
550- // nothing got read
551- break ;
545+ let message_option = conduit. decrypt_single_message ( Some ( & peer. pending_read_buffer ) ) ;
546+ let msg_data = if let Some ( message) = message_option {
547+ message
552548 } else {
553- peer. pending_read_buffer . drain ( 0 ..offset) ;
554- }
555-
556- // something got read, so we definitely have a message
557- let msg_data = next_message_result. 0 . unwrap ( ) ;
549+ break ;
550+ } ;
558551
559552 {
560553 {
0 commit comments