@@ -22,7 +22,7 @@ use crate::blinded_path::message::{AsyncPaymentsContext, DNSResolverContext, Off
22
22
use crate :: ln:: msgs;
23
23
use crate :: ln:: msgs:: {
24
24
BaseMessageHandler , ChannelMessageHandler , Init , LightningError , MessageSendEvent ,
25
- OnionMessageHandler , RoutingMessageHandler , SocketAddress ,
25
+ OnionMessageHandler , RoutingMessageHandler , SendOnlyMessageHandler , SocketAddress ,
26
26
} ;
27
27
use crate :: ln:: peer_channel_encryptor:: {
28
28
MessageBuf , NextNoiseStep , PeerChannelEncryptor , MSG_BUF_ALLOC_SIZE ,
@@ -270,6 +270,8 @@ impl CustomOnionMessageHandler for IgnoringMessageHandler {
270
270
}
271
271
}
272
272
273
+ impl SendOnlyMessageHandler for IgnoringMessageHandler { }
274
+
273
275
impl OnionMessageContents for Infallible {
274
276
fn tlv_type ( & self ) -> u64 {
275
277
unreachable ! ( ) ;
@@ -581,7 +583,7 @@ where
581
583
RM :: Target : RoutingMessageHandler ,
582
584
OM :: Target : OnionMessageHandler ,
583
585
CustomM :: Target : CustomMessageHandler ,
584
- SM :: Target : BaseMessageHandler ,
586
+ SM :: Target : SendOnlyMessageHandler ,
585
587
{
586
588
/// A message handler which handles messages specific to channels. Usually this is just a
587
589
/// [`ChannelManager`] object or an [`ErroringMessageHandler`].
@@ -604,8 +606,9 @@ where
604
606
/// [`IgnoringMessageHandler`].
605
607
pub custom_message_handler : CustomM ,
606
608
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`].
609
612
///
610
613
/// [`ChainMonitor`]: crate::chain::chainmonitor::ChainMonitor
611
614
pub send_only_message_handler : SM ,
@@ -965,7 +968,7 @@ pub trait APeerManager {
965
968
type CMH : Deref < Target = Self :: CMHT > ;
966
969
type NST : NodeSigner + ?Sized ;
967
970
type NS : Deref < Target = Self :: NST > ;
968
- type SMT : BaseMessageHandler + ?Sized ;
971
+ type SMT : SendOnlyMessageHandler + ?Sized ;
969
972
type SM : Deref < Target = Self :: SMT > ;
970
973
/// Gets a reference to the underlying [`PeerManager`].
971
974
fn as_ref (
@@ -999,7 +1002,7 @@ where
999
1002
L :: Target : Logger ,
1000
1003
CMH :: Target : CustomMessageHandler ,
1001
1004
NS :: Target : NodeSigner ,
1002
- SM :: Target : BaseMessageHandler ,
1005
+ SM :: Target : SendOnlyMessageHandler ,
1003
1006
{
1004
1007
type Descriptor = Descriptor ;
1005
1008
type CMT = <CM as Deref >:: Target ;
@@ -1056,7 +1059,7 @@ pub struct PeerManager<
1056
1059
L :: Target : Logger ,
1057
1060
CMH :: Target : CustomMessageHandler ,
1058
1061
NS :: Target : NodeSigner ,
1059
- SM :: Target : BaseMessageHandler ,
1062
+ SM :: Target : SendOnlyMessageHandler ,
1060
1063
{
1061
1064
message_handler : MessageHandler < CM , RM , OM , CMH , SM > ,
1062
1065
/// Connection state for each connected peer - we have an outer read-write lock which is taken
@@ -1140,7 +1143,7 @@ where
1140
1143
OM :: Target : OnionMessageHandler ,
1141
1144
L :: Target : Logger ,
1142
1145
NS :: Target : NodeSigner ,
1143
- SM :: Target : BaseMessageHandler ,
1146
+ SM :: Target : SendOnlyMessageHandler ,
1144
1147
{
1145
1148
/// Constructs a new `PeerManager` with the given `ChannelMessageHandler` and
1146
1149
/// `OnionMessageHandler`. No routing message handler is used and network graph messages are
@@ -1290,7 +1293,7 @@ where
1290
1293
L :: Target : Logger ,
1291
1294
CMH :: Target : CustomMessageHandler ,
1292
1295
NS :: Target : NodeSigner ,
1293
- SM :: Target : BaseMessageHandler ,
1296
+ SM :: Target : SendOnlyMessageHandler ,
1294
1297
{
1295
1298
/// Constructs a new `PeerManager` with the given message handlers.
1296
1299
///
@@ -3841,6 +3844,8 @@ mod tests {
3841
3844
}
3842
3845
}
3843
3846
3847
+ impl SendOnlyMessageHandler for TestBaseMsgHandler { }
3848
+
3844
3849
fn create_peermgr_cfgs ( peer_count : usize ) -> Vec < PeerManagerCfg > {
3845
3850
let mut cfgs = Vec :: new ( ) ;
3846
3851
for i in 0 ..peer_count {
0 commit comments