Skip to content

Commit eaf629c

Browse files
committed
Add utility constructors to PeerHandler to use a dummy handler
1 parent cfdd611 commit eaf629c

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
@@ -351,6 +351,40 @@ macro_rules! encode_msg {
351351
}}
352352
}
353353

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

0 commit comments

Comments
 (0)