Skip to content

Commit 86fd9e7

Browse files
authored
Merge pull request #2384 from jkczyz/2023-06-message-router
Define a default `MessageRouter` implementation
2 parents 63c77a9 + 129dd30 commit 86fd9e7

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

lightning-background-processor/src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -519,9 +519,8 @@ use core::task;
519519
/// # type MyUtxoLookup = dyn lightning::routing::utxo::UtxoLookup + Send + Sync;
520520
/// # type MyFilter = dyn lightning::chain::Filter + Send + Sync;
521521
/// # type MyLogger = dyn lightning::util::logger::Logger + Send + Sync;
522-
/// # type MyMessageRouter = dyn lightning::onion_message::MessageRouter + Send + Sync;
523522
/// # type MyChainMonitor = lightning::chain::chainmonitor::ChainMonitor<lightning::sign::InMemorySigner, Arc<MyFilter>, Arc<MyBroadcaster>, Arc<MyFeeEstimator>, Arc<MyLogger>, Arc<MyPersister>>;
524-
/// # type MyPeerManager = lightning::ln::peer_handler::SimpleArcPeerManager<MySocketDescriptor, MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyUtxoLookup, MyLogger, MyMessageRouter>;
523+
/// # type MyPeerManager = lightning::ln::peer_handler::SimpleArcPeerManager<MySocketDescriptor, MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyUtxoLookup, MyLogger>;
525524
/// # type MyNetworkGraph = lightning::routing::gossip::NetworkGraph<Arc<MyLogger>>;
526525
/// # type MyGossipSync = lightning::routing::gossip::P2PGossipSync<Arc<MyNetworkGraph>, Arc<MyUtxoLookup>, Arc<MyLogger>>;
527526
/// # type MyChannelManager = lightning::ln::channelmanager::SimpleArcChannelManager<MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyLogger>;

lightning/src/ln/peer_handler.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -607,11 +607,11 @@ impl Peer {
607607
/// issues such as overly long function definitions.
608608
///
609609
/// This is not exported to bindings users as `Arc`s don't make sense in bindings.
610-
pub type SimpleArcPeerManager<SD, M, T, F, C, L, R> = PeerManager<
610+
pub type SimpleArcPeerManager<SD, M, T, F, C, L> = PeerManager<
611611
SD,
612612
Arc<SimpleArcChannelManager<M, T, F, L>>,
613613
Arc<P2PGossipSync<Arc<NetworkGraph<Arc<L>>>, Arc<C>, Arc<L>>>,
614-
Arc<SimpleArcOnionMessenger<L, R>>,
614+
Arc<SimpleArcOnionMessenger<L>>,
615615
Arc<L>,
616616
IgnoringMessageHandler,
617617
Arc<KeysManager>
@@ -626,12 +626,12 @@ pub type SimpleArcPeerManager<SD, M, T, F, C, L, R> = PeerManager<
626626
///
627627
/// This is not exported to bindings users as general type aliases don't make sense in bindings.
628628
pub type SimpleRefPeerManager<
629-
'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, SD, M, T, F, C, L, R
629+
'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, SD, M, T, F, C, L
630630
> = PeerManager<
631631
SD,
632632
&'n SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'm, M, T, F, L>,
633633
&'f P2PGossipSync<&'g NetworkGraph<&'f L>, &'h C, &'f L>,
634-
&'i SimpleRefOnionMessenger<'g, 'm, 'n, L, R>,
634+
&'i SimpleRefOnionMessenger<'g, 'm, 'n, L>,
635635
&'f L,
636636
IgnoringMessageHandler,
637637
&'c KeysManager

lightning/src/onion_message/messenger.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,17 @@ pub trait MessageRouter {
152152
) -> Result<OnionMessagePath, ()>;
153153
}
154154

155+
/// A [`MessageRouter`] that always fails.
156+
pub struct DefaultMessageRouter;
157+
158+
impl MessageRouter for DefaultMessageRouter {
159+
fn find_path(
160+
&self, _sender: PublicKey, _peers: Vec<PublicKey>, _destination: Destination
161+
) -> Result<OnionMessagePath, ()> {
162+
Err(())
163+
}
164+
}
165+
155166
/// A path for sending an [`msgs::OnionMessage`].
156167
#[derive(Clone)]
157168
pub struct OnionMessagePath {
@@ -598,11 +609,11 @@ where
598609
///
599610
/// [`SimpleArcChannelManager`]: crate::ln::channelmanager::SimpleArcChannelManager
600611
/// [`SimpleArcPeerManager`]: crate::ln::peer_handler::SimpleArcPeerManager
601-
pub type SimpleArcOnionMessenger<L, R> = OnionMessenger<
612+
pub type SimpleArcOnionMessenger<L> = OnionMessenger<
602613
Arc<KeysManager>,
603614
Arc<KeysManager>,
604615
Arc<L>,
605-
Arc<R>,
616+
Arc<DefaultMessageRouter>,
606617
IgnoringMessageHandler,
607618
IgnoringMessageHandler
608619
>;
@@ -614,11 +625,11 @@ pub type SimpleArcOnionMessenger<L, R> = OnionMessenger<
614625
///
615626
/// [`SimpleRefChannelManager`]: crate::ln::channelmanager::SimpleRefChannelManager
616627
/// [`SimpleRefPeerManager`]: crate::ln::peer_handler::SimpleRefPeerManager
617-
pub type SimpleRefOnionMessenger<'a, 'b, 'c, L, R> = OnionMessenger<
628+
pub type SimpleRefOnionMessenger<'a, 'b, 'c, L> = OnionMessenger<
618629
&'a KeysManager,
619630
&'a KeysManager,
620631
&'b L,
621-
&'c R,
632+
&'c DefaultMessageRouter,
622633
IgnoringMessageHandler,
623634
IgnoringMessageHandler
624635
>;

0 commit comments

Comments
 (0)