@@ -353,6 +353,44 @@ macro_rules! encode_msg {
353
353
} }
354
354
}
355
355
356
+ impl < Descriptor : SocketDescriptor , CM : Deref , L : Deref > PeerManager < Descriptor , CM , IgnoringMessageHandler , L > where
357
+ CM :: Target : ChannelMessageHandler ,
358
+ L :: Target : Logger {
359
+ /// Constructs a new PeerManager with the given ChannelMessageHandler. 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
+ ///
365
+ /// (C-not exported) as we can't export a PeerManager with a dummy route handler
366
+ pub fn new_channel_only ( channel_message_handler : CM , our_node_secret : SecretKey , ephemeral_random_data : & [ u8 ; 32 ] , logger : L ) -> Self {
367
+ Self :: new ( MessageHandler {
368
+ chan_handler : channel_message_handler,
369
+ route_handler : IgnoringMessageHandler { } ,
370
+ } , our_node_secret, ephemeral_random_data, logger)
371
+ }
372
+ }
373
+
374
+ impl < Descriptor : SocketDescriptor , RM : Deref , L : Deref > PeerManager < Descriptor , ErroringMessageHandler , RM , L > where
375
+ RM :: Target : RoutingMessageHandler ,
376
+ L :: Target : Logger {
377
+ /// Constructs a new PeerManager with the given RoutingMessageHandler. No channel message
378
+ /// handler is used and messages related to channels will be ignored (or generate error
379
+ /// messages). Note that some other lightning implementations time-out connections after some
380
+ /// time if no channel is built with the peer.
381
+ ///
382
+ /// ephemeral_random_data is used to derive per-connection ephemeral keys and must be
383
+ /// cryptographically secure random bytes.
384
+ ///
385
+ /// (C-not exported) as we can't export a PeerManager with a dummy channel handler
386
+ pub fn new_routing_only ( routing_message_handler : RM , our_node_secret : SecretKey , ephemeral_random_data : & [ u8 ; 32 ] , logger : L ) -> Self {
387
+ Self :: new ( MessageHandler {
388
+ chan_handler : ErroringMessageHandler :: new ( ) ,
389
+ route_handler : routing_message_handler,
390
+ } , our_node_secret, ephemeral_random_data, logger)
391
+ }
392
+ }
393
+
356
394
/// Manages and reacts to connection events. You probably want to use file descriptors as PeerIds.
357
395
/// PeerIds may repeat, but only after socket_disconnected() has been called.
358
396
impl < Descriptor : SocketDescriptor , CM : Deref , RM : Deref , L : Deref > PeerManager < Descriptor , CM , RM , L > where
0 commit comments