From c1493ae60c9ff0611bc1fdd0e9b6d0d78206a6a6 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Sat, 30 Sep 2017 14:31:52 +0200 Subject: [PATCH] lightningd: Added loading of HTLCs upon startup Signed-off-by: Christian Decker --- lightningd/lightningd.c | 8 +++++++- lightningd/test/run-find_my_path.c | 11 +++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index f389ad080..eb2e46f9a 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -287,8 +287,14 @@ int main(int argc, char *argv[]) derive_peer_seed(ld, peer->seed, &peer->id, peer->channel->id); peer->htlcs = tal_arr(peer, struct htlc_stub, 0); peer->owner = NULL; + if (!wallet_htlcs_load_for_channel(ld->wallet, peer->channel, + &ld->htlcs_in, &ld->htlcs_out)) { + err(1, "could not load htlcs for channel: %s", ld->wallet->db->err); + } + } + if (!wallet_htlcs_reconnect(ld->wallet, &ld->htlcs_in, &ld->htlcs_out)) { + errx(1, "could not reconnect htlcs loaded from wallet, wallet may be inconsistent."); } - /* Create RPC socket (if any) */ setup_jsonrpc(ld, ld->rpc_filename); diff --git a/lightningd/test/run-find_my_path.c b/lightningd/test/run-find_my_path.c index cd3548784..14f4c7a5d 100644 --- a/lightningd/test/run-find_my_path.c +++ b/lightningd/test/run-find_my_path.c @@ -75,6 +75,17 @@ const char *version(void) /* Generated stub for wallet_channels_load_active */ bool wallet_channels_load_active(struct wallet *w UNNEEDED, struct list_head *peers UNNEEDED) { fprintf(stderr, "wallet_channels_load_active called!\n"); abort(); } +/* Generated stub for wallet_htlcs_load_for_channel */ +bool wallet_htlcs_load_for_channel(struct wallet *wallet UNNEEDED, + struct wallet_channel *chan UNNEEDED, + struct htlc_in_map *htlcs_in UNNEEDED, + struct htlc_out_map *htlcs_out UNNEEDED) +{ fprintf(stderr, "wallet_htlcs_load_for_channel called!\n"); abort(); } +/* Generated stub for wallet_htlcs_reconnect */ +bool wallet_htlcs_reconnect(struct wallet *wallet UNNEEDED, + struct htlc_in_map *htlcs_in UNNEEDED, + struct htlc_out_map *htlcs_out UNNEEDED) +{ fprintf(stderr, "wallet_htlcs_reconnect called!\n"); abort(); } /* Generated stub for wallet_new */ struct wallet *wallet_new(const tal_t *ctx UNNEEDED, struct log *log UNNEEDED) { fprintf(stderr, "wallet_new called!\n"); abort(); }