@@ -865,6 +865,7 @@ pub struct PeerManager<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: D
865
865
866
866
enum LogicalMessage < T : core:: fmt:: Debug + wire:: Type + wire:: TestEq > {
867
867
FromWire ( wire:: Message < T > ) ,
868
+ CommitmentSignedBatch ( ChannelId , BTreeMap < Txid , msgs:: CommitmentSigned > ) ,
868
869
}
869
870
870
871
enum MessageHandlingError {
@@ -1662,6 +1663,11 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
1662
1663
Some ( LogicalMessage :: FromWire ( message) ) => {
1663
1664
self . do_handle_message_without_peer_lock ( peer_mutex, message, their_node_id, & logger)
1664
1665
} ,
1666
+ Some ( LogicalMessage :: CommitmentSignedBatch ( channel_id, batch) ) => {
1667
+ log_trace ! ( logger, "Received commitment_signed batch {:?} from {}" , batch, log_pubkey!( their_node_id) ) ;
1668
+ self . message_handler . chan_handler . handle_commitment_signed_batch ( their_node_id, channel_id, batch) ;
1669
+ return Ok ( None ) ;
1670
+ } ,
1665
1671
None => Ok ( None ) ,
1666
1672
}
1667
1673
}
@@ -1790,17 +1796,16 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
1790
1796
core:: mem:: swap ( & mut batch, buffer) ;
1791
1797
1792
1798
peer_lock. commitment_signed_batch . take ( ) ;
1793
- drop ( peer_lock) ;
1794
1799
1795
- self . message_handler . chan_handler . handle_commitment_signed_batch ( their_node_id , channel_id, batch) ;
1800
+ return Ok ( Some ( LogicalMessage :: CommitmentSignedBatch ( channel_id, batch) ) ) ;
1796
1801
}
1797
1802
1798
1803
return Ok ( None ) ;
1799
1804
} else if peer_lock. commitment_signed_batch . is_some ( ) {
1800
1805
log_debug ! ( logger, "Peer {} sent non-batched commitment_signed for channel {} when expecting batched commitment_signed" , log_pubkey!( their_node_id) , & msg. channel_id) ;
1801
1806
return Err ( PeerHandleError { } . into ( ) ) ;
1802
1807
} else {
1803
- return Ok ( Some ( wire:: Message :: CommitmentSigned ( msg) ) ) ;
1808
+ return Ok ( Some ( LogicalMessage :: FromWire ( wire:: Message :: CommitmentSigned ( msg) ) ) ) ;
1804
1809
}
1805
1810
} else if peer_lock. commitment_signed_batch . is_some ( ) {
1806
1811
log_debug ! ( logger, "Peer {} sent non-commitment_signed message when expecting batched commitment_signed" , log_pubkey!( their_node_id) ) ;
0 commit comments