Skip to content

Commit 0357caf

Browse files
authored
Merge pull request #2663 from TheBlueMatt/2023-10-peer-race-send-discon
Fix race between outbound messages and peer disconnection
2 parents 34f8dd9 + 4366369 commit 0357caf

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

lightning/src/ln/peer_handler.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -1870,15 +1870,13 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
18701870
let flush_read_disabled = self.gossip_processing_backlog_lifted.swap(false, Ordering::Relaxed);
18711871

18721872
let mut peers_to_disconnect = HashMap::new();
1873-
let mut events_generated = self.message_handler.chan_handler.get_and_clear_pending_msg_events();
1874-
events_generated.append(&mut self.message_handler.route_handler.get_and_clear_pending_msg_events());
18751873

18761874
{
1877-
// TODO: There are some DoS attacks here where you can flood someone's outbound send
1878-
// buffer by doing things like announcing channels on another node. We should be willing to
1879-
// drop optional-ish messages when send buffers get full!
1880-
18811875
let peers_lock = self.peers.read().unwrap();
1876+
1877+
let mut events_generated = self.message_handler.chan_handler.get_and_clear_pending_msg_events();
1878+
events_generated.append(&mut self.message_handler.route_handler.get_and_clear_pending_msg_events());
1879+
18821880
let peers = &*peers_lock;
18831881
macro_rules! get_peer_for_forwarding {
18841882
($node_id: expr) => {

0 commit comments

Comments
 (0)