wallet: Remove onion-decoding information from db on payment success/fail.

Fixes: #1177
This commit is contained in:
ZmnSCPxj 2018-03-21 12:14:34 +00:00 committed by Christian Decker
parent 489d8d04a6
commit d5d31864cf
2 changed files with 16 additions and 0 deletions

View File

@ -245,6 +245,12 @@ char *dbmigrations[] = {
"ALTER TABLE payments ADD failchannel BLOB;", /* erring_channel */
"ALTER TABLE payments ADD failupdate BLOB;", /* channel_update - can be NULL*/
/* -- Payment routing failure information ends -- */
/* Delete route data for already succeeded or failed payments */
"UPDATE payments"
" SET path_secrets = NULL"
" , route_nodes = NULL"
" , route_channels = NULL"
" WHERE status <> 0;", /* PAYMENT_PENDING */
NULL,
};

View File

@ -1706,6 +1706,16 @@ void wallet_payment_set_status(struct wallet *wallet,
sqlite3_bind_sha256(stmt, 2, payment_hash);
db_exec_prepared(wallet->db, stmt);
}
if (newstatus != PAYMENT_PENDING) {
stmt = db_prepare(wallet->db,
"UPDATE payments"
" SET path_secrets = NULL"
" , route_nodes = NULL"
" , route_channels = NULL"
" WHERE payment_hash = ?;");
sqlite3_bind_sha256(stmt, 1, payment_hash);
db_exec_prepared(wallet->db, stmt);
}
}
void wallet_payment_get_failinfo(const tal_t *ctx,