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>
This commit is contained in:
Rusty Russell 2018-02-14 16:38:54 +10:30 committed by Christian Decker
parent 55d962046b
commit 8f7a19d1a3

View File

@ -709,6 +709,11 @@ void onchain_fulfilled_htlc(struct channel *channel,
if (hout->key.channel != channel)
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))
continue;