Skip to content

Commit 7adf2c7

Browse files
authored
Merge pull request #1524 from ViktorTigerstrom/2022-06-update-fail-holding-cell-htlcs-args
Pass `counterparty_node_id` to `fail_holding_cell_htlcs`
2 parents 5c788a0 + 6032a56 commit 7adf2c7

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

lightning/src/ln/channelmanager.rs

+13-6
Original file line numberDiff line numberDiff line change
@@ -3620,7 +3620,10 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
36203620
// Fail a list of HTLCs that were just freed from the holding cell. The HTLCs need to be
36213621
// failed backwards or, if they were one of our outgoing HTLCs, then their failure needs to
36223622
// be surfaced to the user.
3623-
fn fail_holding_cell_htlcs(&self, mut htlcs_to_fail: Vec<(HTLCSource, PaymentHash)>, channel_id: [u8; 32]) {
3623+
fn fail_holding_cell_htlcs(
3624+
&self, mut htlcs_to_fail: Vec<(HTLCSource, PaymentHash)>, channel_id: [u8; 32],
3625+
_counterparty_node_id: &PublicKey
3626+
) {
36243627
for (htlc_src, payment_hash) in htlcs_to_fail.drain(..) {
36253628
match htlc_src {
36263629
HTLCSource::PreviousHopData(HTLCPreviousHopData { .. }) => {
@@ -4828,7 +4831,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
48284831
hash_map::Entry::Vacant(_) => break Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
48294832
}
48304833
};
4831-
self.fail_holding_cell_htlcs(htlcs_to_fail, msg.channel_id);
4834+
self.fail_holding_cell_htlcs(htlcs_to_fail, msg.channel_id, counterparty_node_id);
48324835
match res {
48334836
Ok((pending_forwards, mut pending_failures, finalized_claim_htlcs,
48344837
short_channel_id, channel_outpoint)) =>
@@ -4968,7 +4971,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
49684971
}
49694972
};
49704973
post_handle_chan_restoration!(self, chan_restoration_res);
4971-
self.fail_holding_cell_htlcs(htlcs_failed_forward, msg.channel_id);
4974+
self.fail_holding_cell_htlcs(htlcs_failed_forward, msg.channel_id, counterparty_node_id);
49724975

49734976
if let Some(channel_ready_msg) = need_lnd_workaround {
49744977
self.internal_channel_ready(counterparty_node_id, &channel_ready_msg)?;
@@ -5066,7 +5069,11 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
50665069
match chan.maybe_free_holding_cell_htlcs(&self.logger) {
50675070
Ok((commitment_opt, holding_cell_failed_htlcs)) => {
50685071
if !holding_cell_failed_htlcs.is_empty() {
5069-
failed_htlcs.push((holding_cell_failed_htlcs, *channel_id));
5072+
failed_htlcs.push((
5073+
holding_cell_failed_htlcs,
5074+
*channel_id,
5075+
chan.get_counterparty_node_id()
5076+
));
50705077
}
50715078
if let Some((commitment_update, monitor_update)) = commitment_opt {
50725079
if let Err(e) = self.chain_monitor.update_channel(chan.get_funding_txo().unwrap(), monitor_update) {
@@ -5094,8 +5101,8 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
50945101
}
50955102

50965103
let has_update = has_monitor_update || !failed_htlcs.is_empty() || !handle_errors.is_empty();
5097-
for (failures, channel_id) in failed_htlcs.drain(..) {
5098-
self.fail_holding_cell_htlcs(failures, channel_id);
5104+
for (failures, channel_id, counterparty_node_id) in failed_htlcs.drain(..) {
5105+
self.fail_holding_cell_htlcs(failures, channel_id, &counterparty_node_id);
50995106
}
51005107

51015108
for (counterparty_node_id, err) in handle_errors.drain(..) {

0 commit comments

Comments
 (0)