invoice: don't allow payments in expired invoices.

Fixes: #363
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2017-11-21 16:57:28 +10:30
committed by Christian Decker
parent e302d6193c
commit 35a6ab8151
2 changed files with 23 additions and 1 deletions

View File

@@ -15,6 +15,7 @@ struct invoice_waiter {
struct command *cmd;
};
/* FIXME: remove this, just use database ops. */
struct invoices {
/* Payments for r values we know about. */
struct list_head invlist;
@@ -27,8 +28,11 @@ struct invoice *find_unpaid(struct invoices *invs, const struct sha256 *rhash)
struct invoice *i;
list_for_each(&invs->invlist, i, list) {
if (structeq(rhash, &i->rhash) && i->state == UNPAID)
if (structeq(rhash, &i->rhash) && i->state == UNPAID) {
if (time_now().ts.tv_sec > i->expiry_time)
break;
return i;
}
}
return NULL;
}