rust-lightning/lightning
Matt Corallo 9ea90a4a44 Add an immediately-freeing MonitorUpdateCompletionAction.
When `MonitorUpdateCompletionAction`s were added, we didn't
consider the case of a duplicate claim during normal HTLC
processing (as the handling only had an `if let` rather than a
`match`, which made the branch easy to miss). This can lead to a
channel freezing indefinitely if an HTLC is claimed (without a
`commitment_signed`), the peer disconnects, and then the HTLC is
claimed again, leading to a never-completing
`MonitorUpdateCompletionAction`.

The fix is simple - if we get back an
`UpdateFulfillCommitFetch::DuplicateClaim` when claiming from the
inbound edge, immediately unlock the outbound edge channel with a
new `MonitorUpdateCompletionAction::FreeOtherChannelImmediately`.

Here we add the new variant, which we start generating in the next
commit.
2023-10-19 15:27:57 +00:00
..
src Add an immediately-freeing MonitorUpdateCompletionAction. 2023-10-19 15:27:57 +00:00
Cargo.toml Bump crate versions to 0.0.117/invoice 0.25 2023-10-03 23:00:48 +00:00