@@ -571,7 +571,7 @@ where
571
571
/// [`IgnoringMessageHandler`].
572
572
pub custom_message_handler : CustomM ,
573
573
574
- /// A message handler which only allows sending messages. This should generally be a
574
+ /// A message handler which can be used to send messages. This should generally be a
575
575
/// [`ChainMonitor`].
576
576
///
577
577
/// [`ChainMonitor`]: crate::chain::chainmonitor::ChainMonitor
@@ -1363,6 +1363,7 @@ where
1363
1363
| self . message_handler . route_handler . provided_init_features ( their_node_id)
1364
1364
| self . message_handler . onion_message_handler . provided_init_features ( their_node_id)
1365
1365
| self . message_handler . custom_message_handler . provided_init_features ( their_node_id)
1366
+ | self . message_handler . send_only_message_handler . provided_init_features ( their_node_id)
1366
1367
}
1367
1368
1368
1369
/// Indicates a new outbound connection has been established to a node with the given `node_id`
@@ -2157,6 +2158,19 @@ where
2157
2158
self . message_handler . onion_message_handler . peer_disconnected ( their_node_id) ;
2158
2159
return Err ( PeerHandleError { } . into ( ) ) ;
2159
2160
}
2161
+ let sends_handler = & self . message_handler . send_only_message_handler ;
2162
+ if let Err ( ( ) ) = sends_handler. peer_connected ( their_node_id, & msg, inbound) {
2163
+ log_debug ! (
2164
+ logger,
2165
+ "Sending-Only Message Handler decided we couldn't communicate with peer {}" ,
2166
+ log_pubkey!( their_node_id)
2167
+ ) ;
2168
+ self . message_handler . route_handler . peer_disconnected ( their_node_id) ;
2169
+ self . message_handler . chan_handler . peer_disconnected ( their_node_id) ;
2170
+ self . message_handler . onion_message_handler . peer_disconnected ( their_node_id) ;
2171
+ self . message_handler . custom_message_handler . peer_disconnected ( their_node_id) ;
2172
+ return Err ( PeerHandleError { } . into ( ) ) ;
2173
+ }
2160
2174
2161
2175
peer_lock. awaiting_pong_timer_tick_intervals = 0 ;
2162
2176
peer_lock. their_features = Some ( msg. features ) ;
@@ -3362,6 +3376,7 @@ where
3362
3376
self . message_handler . chan_handler . peer_disconnected ( node_id) ;
3363
3377
self . message_handler . onion_message_handler . peer_disconnected ( node_id) ;
3364
3378
self . message_handler . custom_message_handler . peer_disconnected ( node_id) ;
3379
+ self . message_handler . send_only_message_handler . peer_disconnected ( node_id) ;
3365
3380
}
3366
3381
descriptor. disconnect_socket ( ) ;
3367
3382
}
@@ -3394,6 +3409,7 @@ where
3394
3409
self . message_handler . chan_handler . peer_disconnected ( node_id) ;
3395
3410
self . message_handler . onion_message_handler . peer_disconnected ( node_id) ;
3396
3411
self . message_handler . custom_message_handler . peer_disconnected ( node_id) ;
3412
+ self . message_handler . send_only_message_handler . peer_disconnected ( node_id) ;
3397
3413
}
3398
3414
} ,
3399
3415
} ;
@@ -3579,7 +3595,8 @@ where
3579
3595
let features = self . message_handler . chan_handler . provided_node_features ( )
3580
3596
| self . message_handler . route_handler . provided_node_features ( )
3581
3597
| self . message_handler . onion_message_handler . provided_node_features ( )
3582
- | self . message_handler . custom_message_handler . provided_node_features ( ) ;
3598
+ | self . message_handler . custom_message_handler . provided_node_features ( )
3599
+ | self . message_handler . send_only_message_handler . provided_node_features ( ) ;
3583
3600
let announcement = msgs:: UnsignedNodeAnnouncement {
3584
3601
features,
3585
3602
timestamp : self . last_node_announcement_serial . fetch_add ( 1 , Ordering :: AcqRel ) ,
0 commit comments