Skip to content

Commit 5bf4cad

Browse files
committed
Drop unused "peer gone" handling in get_peer_for_forwarding!()
We can never assume that messages were reliably delivered whether we placed them in the socket or not, so there isn't a lot of use in explicitly handling the case that a peer was not connected when we went to send it a message. Two TODOs are left for the generation of a `FundingAbandoned` (or similar) event, though it ultimately belongs in `ChannelManager`.
1 parent a8038a8 commit 5bf4cad

File tree

1 file changed

+20
-45
lines changed

1 file changed

+20
-45
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 20 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,19 +1027,17 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
10271027
let peers = &mut *peers_lock;
10281028
for event in events_generated.drain(..) {
10291029
macro_rules! get_peer_for_forwarding {
1030-
($node_id: expr, $handle_no_such_peer: block) => {
1030+
($node_id: expr) => {
10311031
{
10321032
let descriptor = match peers.node_id_to_descriptor.get($node_id) {
10331033
Some(descriptor) => descriptor.clone(),
10341034
None => {
1035-
$handle_no_such_peer;
10361035
continue;
10371036
},
10381037
};
10391038
match peers.peers.get_mut(&descriptor) {
10401039
Some(peer) => {
10411040
if peer.their_features.is_none() {
1042-
$handle_no_such_peer;
10431041
continue;
10441042
}
10451043
(descriptor, peer)
@@ -1054,19 +1052,15 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
10541052
log_trace!(self.logger, "Handling SendAcceptChannel event in peer_handler for node {} for channel {}",
10551053
log_pubkey!(node_id),
10561054
log_bytes!(msg.temporary_channel_id));
1057-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1058-
//TODO: Drop the pending channel? (or just let it timeout, but that sucks)
1059-
});
1055+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
10601056
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
10611057
self.do_attempt_write_data(&mut descriptor, peer);
10621058
},
10631059
MessageSendEvent::SendOpenChannel { ref node_id, ref msg } => {
10641060
log_trace!(self.logger, "Handling SendOpenChannel event in peer_handler for node {} for channel {}",
10651061
log_pubkey!(node_id),
10661062
log_bytes!(msg.temporary_channel_id));
1067-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1068-
//TODO: Drop the pending channel? (or just let it timeout, but that sucks)
1069-
});
1063+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
10701064
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
10711065
self.do_attempt_write_data(&mut descriptor, peer);
10721066
},
@@ -1075,42 +1069,35 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
10751069
log_pubkey!(node_id),
10761070
log_bytes!(msg.temporary_channel_id),
10771071
log_funding_channel_id!(msg.funding_txid, msg.funding_output_index));
1078-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1079-
//TODO: generate a DiscardFunding event indicating to the wallet that
1080-
//they should just throw away this funding transaction
1081-
});
1072+
// TODO: If the peer is gone we should generate a DiscardFunding event
1073+
// indicating to the wallet that they should just throw away this funding transaction
1074+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
10821075
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
10831076
self.do_attempt_write_data(&mut descriptor, peer);
10841077
},
10851078
MessageSendEvent::SendFundingSigned { ref node_id, ref msg } => {
10861079
log_trace!(self.logger, "Handling SendFundingSigned event in peer_handler for node {} for channel {}",
10871080
log_pubkey!(node_id),
10881081
log_bytes!(msg.channel_id));
1089-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1090-
//TODO: generate a DiscardFunding event indicating to the wallet that
1091-
//they should just throw away this funding transaction
1092-
});
1082+
// TODO: If the peer is gone we should generate a DiscardFunding event
1083+
// indicating to the wallet that they should just throw away this funding transaction
1084+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
10931085
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
10941086
self.do_attempt_write_data(&mut descriptor, peer);
10951087
},
10961088
MessageSendEvent::SendFundingLocked { ref node_id, ref msg } => {
10971089
log_trace!(self.logger, "Handling SendFundingLocked event in peer_handler for node {} for channel {}",
10981090
log_pubkey!(node_id),
10991091
log_bytes!(msg.channel_id));
1100-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1101-
//TODO: Do whatever we're gonna do for handling dropped messages
1102-
});
1092+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
11031093
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
11041094
self.do_attempt_write_data(&mut descriptor, peer);
11051095
},
11061096
MessageSendEvent::SendAnnouncementSignatures { ref node_id, ref msg } => {
11071097
log_trace!(self.logger, "Handling SendAnnouncementSignatures event in peer_handler for node {} for channel {})",
11081098
log_pubkey!(node_id),
11091099
log_bytes!(msg.channel_id));
1110-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1111-
//TODO: generate a DiscardFunding event indicating to the wallet that
1112-
//they should just throw away this funding transaction
1113-
});
1100+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
11141101
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
11151102
self.do_attempt_write_data(&mut descriptor, peer);
11161103
},
@@ -1121,9 +1108,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
11211108
update_fulfill_htlcs.len(),
11221109
update_fail_htlcs.len(),
11231110
log_bytes!(commitment_signed.channel_id));
1124-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1125-
//TODO: Do whatever we're gonna do for handling dropped messages
1126-
});
1111+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
11271112
for msg in update_add_htlcs {
11281113
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
11291114
}
@@ -1146,39 +1131,31 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
11461131
log_trace!(self.logger, "Handling SendRevokeAndACK event in peer_handler for node {} for channel {}",
11471132
log_pubkey!(node_id),
11481133
log_bytes!(msg.channel_id));
1149-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1150-
//TODO: Do whatever we're gonna do for handling dropped messages
1151-
});
1134+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
11521135
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
11531136
self.do_attempt_write_data(&mut descriptor, peer);
11541137
},
11551138
MessageSendEvent::SendClosingSigned { ref node_id, ref msg } => {
11561139
log_trace!(self.logger, "Handling SendClosingSigned event in peer_handler for node {} for channel {}",
11571140
log_pubkey!(node_id),
11581141
log_bytes!(msg.channel_id));
1159-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1160-
//TODO: Do whatever we're gonna do for handling dropped messages
1161-
});
1142+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
11621143
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
11631144
self.do_attempt_write_data(&mut descriptor, peer);
11641145
},
11651146
MessageSendEvent::SendShutdown { ref node_id, ref msg } => {
11661147
log_trace!(self.logger, "Handling Shutdown event in peer_handler for node {} for channel {}",
11671148
log_pubkey!(node_id),
11681149
log_bytes!(msg.channel_id));
1169-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1170-
//TODO: Do whatever we're gonna do for handling dropped messages
1171-
});
1150+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
11721151
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
11731152
self.do_attempt_write_data(&mut descriptor, peer);
11741153
},
11751154
MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } => {
11761155
log_trace!(self.logger, "Handling SendChannelReestablish event in peer_handler for node {} for channel {}",
11771156
log_pubkey!(node_id),
11781157
log_bytes!(msg.channel_id));
1179-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1180-
//TODO: Do whatever we're gonna do for handling dropped messages
1181-
});
1158+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
11821159
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
11831160
self.do_attempt_write_data(&mut descriptor, peer);
11841161
},
@@ -1267,21 +1244,19 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
12671244
log_trace!(self.logger, "Handling SendErrorMessage HandleError event in peer_handler for node {} with message {}",
12681245
log_pubkey!(node_id),
12691246
msg.data);
1270-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
1271-
//TODO: Do whatever we're gonna do for handling dropped messages
1272-
});
1247+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
12731248
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
12741249
self.do_attempt_write_data(&mut descriptor, peer);
12751250
},
12761251
}
12771252
},
12781253
MessageSendEvent::SendChannelRangeQuery { ref node_id, ref msg } => {
1279-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {});
1254+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
12801255
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
12811256
self.do_attempt_write_data(&mut descriptor, peer);
12821257
},
12831258
MessageSendEvent::SendShortIdsQuery { ref node_id, ref msg } => {
1284-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {});
1259+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
12851260
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
12861261
self.do_attempt_write_data(&mut descriptor, peer);
12871262
}
@@ -1292,7 +1267,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
12921267
msg.first_blocknum,
12931268
msg.number_of_blocks,
12941269
msg.sync_complete);
1295-
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {});
1270+
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id);
12961271
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
12971272
self.do_attempt_write_data(&mut descriptor, peer);
12981273
}

0 commit comments

Comments
 (0)