Skip to content

Commit f3575d4

Browse files
committed
Add utility constructors to PeerHandler to use a dummy handler
1 parent a9c5301 commit f3575d4

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,40 @@ macro_rules! encode_msg {
353353
}}
354354
}
355355

356+
impl<Descriptor: SocketDescriptor, CM: Deref, L: Deref> PeerManager<Descriptor, CM, DummyRouteHandler, L> where
357+
CM::Target: ChannelMessageHandler,
358+
L::Target: Logger {
359+
/// Constructs a new PeerManager with the given channel message handler. No routing message
360+
/// handler is used and network graph messages are ignored.
361+
///
362+
/// ephemeral_random_data is used to derive per-connection ephemeral keys and must be
363+
/// cryptographically secure random bytes.
364+
pub fn new_without_routing(channel_message_handler: CM, our_node_secret: SecretKey, ephemeral_random_data: &[u8; 32], logger: L) -> Self {
365+
Self::new(MessageHandler {
366+
chan_handler: channel_message_handler,
367+
route_handler: DummyRouteHandler{},
368+
}, our_node_secret, ephemeral_random_data, logger)
369+
}
370+
}
371+
372+
impl<Descriptor: SocketDescriptor, RM: Deref, L: Deref> PeerManager<Descriptor, DummyChannelHandler, RM, L> where
373+
RM::Target: RoutingMessageHandler,
374+
L::Target: Logger {
375+
/// Constructs a new PeerManager with the given routing message handler. No channel message
376+
/// handler is used and messages related to channels will be ignored (or generate error
377+
/// messages). Note that some other lightning implementations time-out connections after some
378+
/// time if no channel is built with the peer.
379+
///
380+
/// ephemeral_random_data is used to derive per-connection ephemeral keys and must be
381+
/// cryptographically secure random bytes.
382+
pub fn new_without_channel(routing_message_handler: RM, our_node_secret: SecretKey, ephemeral_random_data: &[u8; 32], logger: L) -> Self {
383+
Self::new(MessageHandler {
384+
chan_handler: DummyChannelHandler::new(),
385+
route_handler: routing_message_handler,
386+
}, our_node_secret, ephemeral_random_data, logger)
387+
}
388+
}
389+
356390
/// Manages and reacts to connection events. You probably want to use file descriptors as PeerIds.
357391
/// PeerIds may repeat, but only after socket_disconnected() has been called.
358392
impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<Descriptor, CM, RM, L> where

0 commit comments

Comments
 (0)