Skip to content

Commit 43c03e5

Browse files
committed
Call all of BaseMessageHandler's methods on the send-only handler
In 9db37f2 we introduced a `send_only_message_handler` which was intended to be used to send messages to peers. However, when we did so we forgot to add calls to its `peer_connected`, `peer_disconnected`, `provided_node_features`, and `provided_init_features` methods. Here we add those methods, updating the comment somewhat to avoid implying that they won't be called.
1 parent 72d9862 commit 43c03e5

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ where
571571
/// [`IgnoringMessageHandler`].
572572
pub custom_message_handler: CustomM,
573573

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
575575
/// [`ChainMonitor`].
576576
///
577577
/// [`ChainMonitor`]: crate::chain::chainmonitor::ChainMonitor
@@ -1363,6 +1363,7 @@ where
13631363
| self.message_handler.route_handler.provided_init_features(their_node_id)
13641364
| self.message_handler.onion_message_handler.provided_init_features(their_node_id)
13651365
| 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)
13661367
}
13671368

13681369
/// Indicates a new outbound connection has been established to a node with the given `node_id`
@@ -2157,6 +2158,19 @@ where
21572158
self.message_handler.onion_message_handler.peer_disconnected(their_node_id);
21582159
return Err(PeerHandleError {}.into());
21592160
}
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+
}
21602174

21612175
peer_lock.awaiting_pong_timer_tick_intervals = 0;
21622176
peer_lock.their_features = Some(msg.features);
@@ -3362,6 +3376,7 @@ where
33623376
self.message_handler.chan_handler.peer_disconnected(node_id);
33633377
self.message_handler.onion_message_handler.peer_disconnected(node_id);
33643378
self.message_handler.custom_message_handler.peer_disconnected(node_id);
3379+
self.message_handler.send_only_message_handler.peer_disconnected(node_id);
33653380
}
33663381
descriptor.disconnect_socket();
33673382
}
@@ -3394,6 +3409,7 @@ where
33943409
self.message_handler.chan_handler.peer_disconnected(node_id);
33953410
self.message_handler.onion_message_handler.peer_disconnected(node_id);
33963411
self.message_handler.custom_message_handler.peer_disconnected(node_id);
3412+
self.message_handler.send_only_message_handler.peer_disconnected(node_id);
33973413
}
33983414
},
33993415
};
@@ -3579,7 +3595,8 @@ where
35793595
let features = self.message_handler.chan_handler.provided_node_features()
35803596
| self.message_handler.route_handler.provided_node_features()
35813597
| 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();
35833600
let announcement = msgs::UnsignedNodeAnnouncement {
35843601
features,
35853602
timestamp: self.last_node_announcement_serial.fetch_add(1, Ordering::AcqRel),

0 commit comments

Comments
 (0)