@@ -3620,7 +3620,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
3620
3620
// Fail a list of HTLCs that were just freed from the holding cell. The HTLCs need to be
3621
3621
// failed backwards or, if they were one of our outgoing HTLCs, then their failure needs to
3622
3622
// 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 ( & self , mut htlcs_to_fail : Vec < ( HTLCSource , PaymentHash ) > , channel_id : [ u8 ; 32 ] , _counterparty_node_id : & PublicKey ) {
3624
3624
for ( htlc_src, payment_hash) in htlcs_to_fail. drain ( ..) {
3625
3625
match htlc_src {
3626
3626
HTLCSource :: PreviousHopData ( HTLCPreviousHopData { .. } ) => {
@@ -4828,7 +4828,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
4828
4828
hash_map:: Entry :: Vacant ( _) => break Err ( MsgHandleErrInternal :: send_err_msg_no_close ( "Failed to find corresponding channel" . to_owned ( ) , msg. channel_id ) )
4829
4829
}
4830
4830
} ;
4831
- self . fail_holding_cell_htlcs ( htlcs_to_fail, msg. channel_id ) ;
4831
+ self . fail_holding_cell_htlcs ( htlcs_to_fail, msg. channel_id , counterparty_node_id ) ;
4832
4832
match res {
4833
4833
Ok ( ( pending_forwards, mut pending_failures, finalized_claim_htlcs,
4834
4834
short_channel_id, channel_outpoint) ) =>
@@ -4968,7 +4968,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
4968
4968
}
4969
4969
} ;
4970
4970
post_handle_chan_restoration ! ( self , chan_restoration_res) ;
4971
- self . fail_holding_cell_htlcs ( htlcs_failed_forward, msg. channel_id ) ;
4971
+ self . fail_holding_cell_htlcs ( htlcs_failed_forward, msg. channel_id , counterparty_node_id ) ;
4972
4972
4973
4973
if let Some ( channel_ready_msg) = need_lnd_workaround {
4974
4974
self . internal_channel_ready ( counterparty_node_id, & channel_ready_msg) ?;
@@ -5066,7 +5066,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
5066
5066
match chan. maybe_free_holding_cell_htlcs ( & self . logger ) {
5067
5067
Ok ( ( commitment_opt, holding_cell_failed_htlcs) ) => {
5068
5068
if !holding_cell_failed_htlcs. is_empty ( ) {
5069
- failed_htlcs. push ( ( holding_cell_failed_htlcs, * channel_id) ) ;
5069
+ failed_htlcs. push ( ( holding_cell_failed_htlcs, * channel_id, chan . get_counterparty_node_id ( ) ) ) ;
5070
5070
}
5071
5071
if let Some ( ( commitment_update, monitor_update) ) = commitment_opt {
5072
5072
if let Err ( e) = self . chain_monitor . update_channel ( chan. get_funding_txo ( ) . unwrap ( ) , monitor_update) {
@@ -5094,8 +5094,8 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
5094
5094
}
5095
5095
5096
5096
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) ;
5097
+ for ( failures, channel_id, counterparty_node_id ) in failed_htlcs. drain ( ..) {
5098
+ self . fail_holding_cell_htlcs ( failures, channel_id, & counterparty_node_id ) ;
5099
5099
}
5100
5100
5101
5101
for ( counterparty_node_id, err) in handle_errors. drain ( ..) {
0 commit comments