mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-24 15:02:20 +01:00
Fix handling multiple ShutdownResults
This commit is contained in:
parent
fbc86cb564
commit
db79ed07f4
1 changed files with 4 additions and 5 deletions
|
@ -6976,8 +6976,7 @@ where
|
|||
fn maybe_generate_initial_closing_signed(&self) -> bool {
|
||||
let mut handle_errors: Vec<(PublicKey, Result<(), _>)> = Vec::new();
|
||||
let mut has_update = false;
|
||||
let mut shutdown_result = None;
|
||||
let mut unbroadcasted_batch_funding_txid = None;
|
||||
let mut shutdown_results = Vec::new();
|
||||
{
|
||||
let per_peer_state = self.per_peer_state.read().unwrap();
|
||||
|
||||
|
@ -6988,7 +6987,7 @@ where
|
|||
peer_state.channel_by_id.retain(|channel_id, phase| {
|
||||
match phase {
|
||||
ChannelPhase::Funded(chan) => {
|
||||
unbroadcasted_batch_funding_txid = chan.context.unbroadcasted_batch_funding_txid();
|
||||
let unbroadcasted_batch_funding_txid = chan.context.unbroadcasted_batch_funding_txid();
|
||||
match chan.maybe_propose_closing_signed(&self.fee_estimator, &self.logger) {
|
||||
Ok((msg_opt, tx_opt)) => {
|
||||
if let Some(msg) = msg_opt {
|
||||
|
@ -7011,7 +7010,7 @@ where
|
|||
log_info!(self.logger, "Broadcasting {}", log_tx!(tx));
|
||||
self.tx_broadcaster.broadcast_transactions(&[&tx]);
|
||||
update_maps_on_chan_removal!(self, &chan.context);
|
||||
shutdown_result = Some((None, Vec::new(), unbroadcasted_batch_funding_txid));
|
||||
shutdown_results.push((None, Vec::new(), unbroadcasted_batch_funding_txid));
|
||||
false
|
||||
} else { true }
|
||||
},
|
||||
|
@ -7033,7 +7032,7 @@ where
|
|||
let _ = handle_error!(self, err, counterparty_node_id);
|
||||
}
|
||||
|
||||
if let Some(shutdown_result) = shutdown_result {
|
||||
for shutdown_result in shutdown_results.drain(..) {
|
||||
self.finish_close_channel(shutdown_result);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue