Skip to content

Commit 07148db

Browse files
committed
Add RoutingMessageHandler::peer_disconnected
...to make it identical to all our other message handlers.
1 parent 9737a01 commit 07148db

File tree

5 files changed

+15
-0
lines changed

5 files changed

+15
-0
lines changed

lightning-net-tokio/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,7 @@ mod tests {
689689
) -> Result<(), ()> {
690690
Ok(())
691691
}
692+
fn peer_disconnected(&self, _their_node_id: PublicKey) {}
692693
fn handle_reply_channel_range(
693694
&self, _their_node_id: PublicKey, _msg: ReplyChannelRange,
694695
) -> Result<(), LightningError> {

lightning/src/ln/msgs.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1658,7 +1658,11 @@ pub trait RoutingMessageHandler : MessageSendEventsProvider {
16581658
/// May return an `Err(())` if the features the peer supports are not sufficient to communicate
16591659
/// with us. Implementors should be somewhat conservative about doing so, however, as other
16601660
/// message handlers may still wish to communicate with this peer.
1661+
///
1662+
/// [`Self::peer_disconnected`] will not be called if `Err(())` is returned.
16611663
fn peer_connected(&self, their_node_id: PublicKey, init: &Init, inbound: bool) -> Result<(), ()>;
1664+
/// Indicates a connection to the peer failed/an existing connection was lost.
1665+
fn peer_disconnected(&self, their_node_id: PublicKey);
16621666
/// Handles the reply of a query we initiated to learn about channels
16631667
/// for a given range of blocks. We can expect to receive one or more
16641668
/// replies to a single query.

lightning/src/ln/peer_handler.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ impl RoutingMessageHandler for IgnoringMessageHandler {
121121
Option<(msgs::ChannelAnnouncement, Option<msgs::ChannelUpdate>, Option<msgs::ChannelUpdate>)> { None }
122122
fn get_next_node_announcement(&self, _starting_point: Option<&NodeId>) -> Option<msgs::NodeAnnouncement> { None }
123123
fn peer_connected(&self, _their_node_id: PublicKey, _init: &msgs::Init, _inbound: bool) -> Result<(), ()> { Ok(()) }
124+
fn peer_disconnected(&self, _their_node_id: PublicKey) { }
124125
fn handle_reply_channel_range(&self, _their_node_id: PublicKey, _msg: msgs::ReplyChannelRange) -> Result<(), LightningError> { Ok(()) }
125126
fn handle_reply_short_channel_ids_end(&self, _their_node_id: PublicKey, _msg: msgs::ReplyShortChannelIdsEnd) -> Result<(), LightningError> { Ok(()) }
126127
fn handle_query_channel_range(&self, _their_node_id: PublicKey, _msg: msgs::QueryChannelRange) -> Result<(), LightningError> { Ok(()) }
@@ -1716,15 +1717,18 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
17161717
}
17171718
if let Err(()) = self.message_handler.chan_handler.peer_connected(their_node_id, &msg, peer_lock.inbound_connection) {
17181719
log_debug!(logger, "Channel Handler decided we couldn't communicate with peer {}", log_pubkey!(their_node_id));
1720+
self.message_handler.route_handler.peer_disconnected(their_node_id);
17191721
return Err(PeerHandleError { }.into());
17201722
}
17211723
if let Err(()) = self.message_handler.onion_message_handler.peer_connected(their_node_id, &msg, peer_lock.inbound_connection) {
17221724
log_debug!(logger, "Onion Message Handler decided we couldn't communicate with peer {}", log_pubkey!(their_node_id));
1725+
self.message_handler.route_handler.peer_disconnected(their_node_id);
17231726
self.message_handler.chan_handler.peer_disconnected(their_node_id);
17241727
return Err(PeerHandleError { }.into());
17251728
}
17261729
if let Err(()) = self.message_handler.custom_message_handler.peer_connected(their_node_id, &msg, peer_lock.inbound_connection) {
17271730
log_debug!(logger, "Custom Message Handler decided we couldn't communicate with peer {}", log_pubkey!(their_node_id));
1731+
self.message_handler.route_handler.peer_disconnected(their_node_id);
17281732
self.message_handler.chan_handler.peer_disconnected(their_node_id);
17291733
self.message_handler.onion_message_handler.peer_disconnected(their_node_id);
17301734
return Err(PeerHandleError { }.into());
@@ -2538,6 +2542,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
25382542
debug_assert!(peer.their_node_id.is_some());
25392543
if let Some((node_id, _)) = peer.their_node_id {
25402544
log_trace!(WithContext::from(&self.logger, Some(node_id), None, None), "Disconnecting peer with id {} due to {}", node_id, reason);
2545+
self.message_handler.route_handler.peer_disconnected(node_id);
25412546
self.message_handler.chan_handler.peer_disconnected(node_id);
25422547
self.message_handler.onion_message_handler.peer_disconnected(node_id);
25432548
self.message_handler.custom_message_handler.peer_disconnected(node_id);
@@ -2562,6 +2567,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
25622567
let removed = self.node_id_to_descriptor.lock().unwrap().remove(&node_id);
25632568
debug_assert!(removed.is_some(), "descriptor maps should be consistent");
25642569
if !peer.handshake_complete() { return; }
2570+
self.message_handler.route_handler.peer_disconnected(node_id);
25652571
self.message_handler.chan_handler.peer_disconnected(node_id);
25662572
self.message_handler.onion_message_handler.peer_disconnected(node_id);
25672573
self.message_handler.custom_message_handler.peer_disconnected(node_id);

lightning/src/routing/gossip.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,8 @@ where
701701
Ok(())
702702
}
703703

704+
fn peer_disconnected(&self, _their_node_id: PublicKey) {}
705+
704706
fn handle_reply_channel_range(
705707
&self, _their_node_id: PublicKey, _msg: ReplyChannelRange,
706708
) -> Result<(), LightningError> {

lightning/src/util/test_utils.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1245,6 +1245,8 @@ impl msgs::RoutingMessageHandler for TestRoutingMessageHandler {
12451245
Ok(())
12461246
}
12471247

1248+
fn peer_disconnected(&self, _their_node_id: PublicKey) {}
1249+
12481250
fn handle_reply_channel_range(
12491251
&self, _their_node_id: PublicKey, _msg: msgs::ReplyChannelRange,
12501252
) -> Result<(), msgs::LightningError> {

0 commit comments

Comments
 (0)