@@ -22,7 +22,7 @@ use crate::blinded_path::message::{AsyncPaymentsContext, DNSResolverContext, Off
2222use crate :: ln:: msgs;
2323use crate :: ln:: msgs:: {
2424 BaseMessageHandler , ChannelMessageHandler , Init , LightningError , MessageSendEvent ,
25- OnionMessageHandler , RoutingMessageHandler , SocketAddress ,
25+ OnionMessageHandler , RoutingMessageHandler , SendOnlyMessageHandler , SocketAddress ,
2626} ;
2727use crate :: ln:: peer_channel_encryptor:: {
2828 MessageBuf , NextNoiseStep , PeerChannelEncryptor , MSG_BUF_ALLOC_SIZE ,
@@ -270,6 +270,8 @@ impl CustomOnionMessageHandler for IgnoringMessageHandler {
270270 }
271271}
272272
273+ impl SendOnlyMessageHandler for IgnoringMessageHandler { }
274+
273275impl OnionMessageContents for Infallible {
274276 fn tlv_type ( & self ) -> u64 {
275277 unreachable ! ( ) ;
@@ -581,7 +583,7 @@ where
581583 RM :: Target : RoutingMessageHandler ,
582584 OM :: Target : OnionMessageHandler ,
583585 CustomM :: Target : CustomMessageHandler ,
584- SM :: Target : BaseMessageHandler ,
586+ SM :: Target : SendOnlyMessageHandler ,
585587{
586588 /// A message handler which handles messages specific to channels. Usually this is just a
587589 /// [`ChannelManager`] object or an [`ErroringMessageHandler`].
@@ -604,8 +606,9 @@ where
604606 /// [`IgnoringMessageHandler`].
605607 pub custom_message_handler : CustomM ,
606608
607- /// A message handler which can be used to send messages. This should generally be a
608- /// [`ChainMonitor`].
609+ /// A message handler which can be used to send messages.
610+ ///
611+ /// This should generally be a [`ChainMonitor`].
609612 ///
610613 /// [`ChainMonitor`]: crate::chain::chainmonitor::ChainMonitor
611614 pub send_only_message_handler : SM ,
@@ -965,7 +968,7 @@ pub trait APeerManager {
965968 type CMH : Deref < Target = Self :: CMHT > ;
966969 type NST : NodeSigner + ?Sized ;
967970 type NS : Deref < Target = Self :: NST > ;
968- type SMT : BaseMessageHandler + ?Sized ;
971+ type SMT : SendOnlyMessageHandler + ?Sized ;
969972 type SM : Deref < Target = Self :: SMT > ;
970973 /// Gets a reference to the underlying [`PeerManager`].
971974 fn as_ref (
@@ -999,7 +1002,7 @@ where
9991002 L :: Target : Logger ,
10001003 CMH :: Target : CustomMessageHandler ,
10011004 NS :: Target : NodeSigner ,
1002- SM :: Target : BaseMessageHandler ,
1005+ SM :: Target : SendOnlyMessageHandler ,
10031006{
10041007 type Descriptor = Descriptor ;
10051008 type CMT = <CM as Deref >:: Target ;
@@ -1056,7 +1059,7 @@ pub struct PeerManager<
10561059 L :: Target : Logger ,
10571060 CMH :: Target : CustomMessageHandler ,
10581061 NS :: Target : NodeSigner ,
1059- SM :: Target : BaseMessageHandler ,
1062+ SM :: Target : SendOnlyMessageHandler ,
10601063{
10611064 message_handler : MessageHandler < CM , RM , OM , CMH , SM > ,
10621065 /// Connection state for each connected peer - we have an outer read-write lock which is taken
@@ -1140,7 +1143,7 @@ where
11401143 OM :: Target : OnionMessageHandler ,
11411144 L :: Target : Logger ,
11421145 NS :: Target : NodeSigner ,
1143- SM :: Target : BaseMessageHandler ,
1146+ SM :: Target : SendOnlyMessageHandler ,
11441147{
11451148 /// Constructs a new `PeerManager` with the given `ChannelMessageHandler` and
11461149 /// `OnionMessageHandler`. No routing message handler is used and network graph messages are
@@ -1290,7 +1293,7 @@ where
12901293 L :: Target : Logger ,
12911294 CMH :: Target : CustomMessageHandler ,
12921295 NS :: Target : NodeSigner ,
1293- SM :: Target : BaseMessageHandler ,
1296+ SM :: Target : SendOnlyMessageHandler ,
12941297{
12951298 /// Constructs a new `PeerManager` with the given message handlers.
12961299 ///
@@ -3841,6 +3844,8 @@ mod tests {
38413844 }
38423845 }
38433846
3847+ impl SendOnlyMessageHandler for TestBaseMsgHandler { }
3848+
38443849 fn create_peermgr_cfgs ( peer_count : usize ) -> Vec < PeerManagerCfg > {
38453850 let mut cfgs = Vec :: new ( ) ;
38463851 for i in 0 ..peer_count {
0 commit comments