@@ -916,21 +916,20 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref, CMH: Deref> P
916916 if peer. pending_read_buffer_pos == peer. pending_read_buffer . len ( ) {
917917 peer. pending_read_buffer_pos = 0 ;
918918
919- macro_rules! insert_node_id {
920- ( ) => {
921- match self . node_id_to_descriptor. lock( ) . unwrap( ) . entry( peer. their_node_id. unwrap( ) ) {
922- hash_map:: Entry :: Occupied ( _) => {
923- log_trace!( self . logger, "Got second connection with {}, closing" , log_pubkey!( peer. their_node_id. unwrap( ) ) ) ;
924- peer. their_node_id = None ; // Unset so that we don't generate a peer_disconnected event
925- return Err ( PeerHandleError { no_connection_possible: false } )
926- } ,
927- hash_map:: Entry :: Vacant ( entry) => {
928- log_debug!( self . logger, "Finished noise handshake for connection with {}" , log_pubkey!( peer. their_node_id. unwrap( ) ) ) ;
929- entry. insert( peer_descriptor. clone( ) )
930- } ,
931- } ;
919+ let insert_node_id = || {
920+ match self . node_id_to_descriptor . lock ( ) . unwrap ( ) . entry ( peer. their_node_id . unwrap ( ) ) {
921+ hash_map:: Entry :: Occupied ( _) => {
922+ log_trace ! ( self . logger, "Got second connection with {}, closing" , log_pubkey!( peer. their_node_id. unwrap( ) ) ) ;
923+ peer. their_node_id = None ; // Unset so that we don't generate a peer_disconnected event
924+ Err ( PeerHandleError { no_connection_possible : false } )
925+ } ,
926+ hash_map:: Entry :: Vacant ( entry) => {
927+ log_debug ! ( self . logger, "Finished noise handshake for connection with {}" , log_pubkey!( peer. their_node_id. unwrap( ) ) ) ;
928+ entry. insert ( peer_descriptor. clone ( ) ) ;
929+ Ok ( ( ) )
930+ } ,
932931 }
933- }
932+ } ;
934933
935934 let next_step = peer. channel_encryptor . get_noise_step ( ) ;
936935 match next_step {
@@ -948,7 +947,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref, CMH: Deref> P
948947 peer. pending_read_is_header = true ;
949948
950949 peer. their_node_id = Some ( their_node_id) ;
951- insert_node_id ! ( ) ;
950+ insert_node_id ( ) ? ;
952951 let features = InitFeatures :: known ( ) ;
953952 let resp = msgs:: Init { features, remote_network_address : filter_addresses ( peer. their_net_address . clone ( ) ) } ;
954953 self . enqueue_message ( peer, & resp) ;
@@ -960,7 +959,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref, CMH: Deref> P
960959 peer. pending_read_buffer = [ 0 ; 18 ] . to_vec ( ) ; // Message length header is 18 bytes
961960 peer. pending_read_is_header = true ;
962961 peer. their_node_id = Some ( their_node_id) ;
963- insert_node_id ! ( ) ;
962+ insert_node_id ( ) ? ;
964963 let features = InitFeatures :: known ( ) ;
965964 let resp = msgs:: Init { features, remote_network_address : filter_addresses ( peer. their_net_address . clone ( ) ) } ;
966965 self . enqueue_message ( peer, & resp) ;
0 commit comments