Skip to content

Commit eed614b

Browse files
committed
Add a LogicalMessage to use in PeerManager
Splicing introduces a concept of batched commitment_signed messages for each pending splice transaction. These can be treated as one logical message, even though the protocol currently defines them as separate commitment_signed messages with a TLV for batch information. Add a LogicalMessage wrapper around wire::Message such that it can be used internally by PeerManager. A CommitmentSignedBatch variant will be added in the next commit.
1 parent 00bfb05 commit eed614b

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,10 @@ pub struct PeerManager<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: D
858858
secp_ctx: Secp256k1<secp256k1::SignOnly>
859859
}
860860

861+
enum LogicalMessage<T: core::fmt::Debug + wire::Type + wire::TestEq> {
862+
FromWire(wire::Message<T>),
863+
}
864+
861865
enum MessageHandlingError {
862866
PeerHandleError(PeerHandleError),
863867
LightningError(LightningError),
@@ -1645,10 +1649,11 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
16451649

16461650
self.message_handler.chan_handler.message_received();
16471651

1648-
if let Some(message) = unprocessed_message {
1649-
self.do_handle_message_without_peer_lock(peer_mutex, message, their_node_id, &logger)
1650-
} else {
1651-
Ok(None)
1652+
match unprocessed_message {
1653+
Some(LogicalMessage::FromWire(message)) => {
1654+
self.do_handle_message_without_peer_lock(peer_mutex, message, their_node_id, &logger)
1655+
},
1656+
None => Ok(None),
16521657
}
16531658
}
16541659

@@ -1662,7 +1667,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
16621667
message: wire::Message<<<CMH as Deref>::Target as wire::CustomMessageReader>::CustomMessage>,
16631668
their_node_id: PublicKey,
16641669
logger: &WithContext<'a, L>
1665-
) -> Result<Option<wire::Message<<<CMH as Deref>::Target as wire::CustomMessageReader>::CustomMessage>>, MessageHandlingError>
1670+
) -> Result<Option<LogicalMessage<<<CMH as Deref>::Target as wire::CustomMessageReader>::CustomMessage>>, MessageHandlingError>
16661671
{
16671672
peer_lock.received_message_since_timer_tick = true;
16681673

@@ -1774,7 +1779,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
17741779
peer_lock.received_channel_announce_since_backlogged = true;
17751780
}
17761781

1777-
Ok(Some(message))
1782+
Ok(Some(LogicalMessage::FromWire(message)))
17781783
}
17791784

17801785
// Conducts all message processing that doesn't require us to hold the `peer_lock`.

0 commit comments

Comments
 (0)