Browse Source

onchain: handle case where multiple HTLCs exist for same payment_hash.

We will have probably failed the others, but either way, don't try to
fulfill an HTLC we've already failed.

Fixes: #394
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ppa-0.6.1
Rusty Russell 7 years ago
committed by Christian Decker
parent
commit
8f7a19d1a3
  1. 5
      lightningd/peer_htlcs.c

5
lightningd/peer_htlcs.c

@ -709,6 +709,11 @@ void onchain_fulfilled_htlc(struct channel *channel,
if (hout->key.channel != channel) if (hout->key.channel != channel)
continue; continue;
/* It's possible that we failed some and succeeded one,
* if we got multiple errors. */
if (hout->failcode != 0 || hout->failuremsg)
continue;
if (!structeq(&hout->payment_hash, &payment_hash)) if (!structeq(&hout->payment_hash, &payment_hash))
continue; continue;

Loading…
Cancel
Save