|
@ -197,6 +197,20 @@ void derive_peer_seed(struct lightningd *ld, struct privkey *peer_seed, |
|
|
ld->peer_counter++; |
|
|
ld->peer_counter++; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void shutdown_subdaemons(struct lightningd *ld) |
|
|
|
|
|
{ |
|
|
|
|
|
struct peer *p; |
|
|
|
|
|
|
|
|
|
|
|
/* Let everyone shutdown cleanly. */ |
|
|
|
|
|
subd_shutdown(ld->hsm, 10); |
|
|
|
|
|
subd_shutdown(ld->gossip, 10); |
|
|
|
|
|
|
|
|
|
|
|
/* Duplicates are OK: no need to check here. */ |
|
|
|
|
|
list_for_each(&ld->peers, p, list) |
|
|
|
|
|
if (p->owner) |
|
|
|
|
|
subd_shutdown(p->owner, 0); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
int main(int argc, char *argv[]) |
|
|
int main(int argc, char *argv[]) |
|
|
{ |
|
|
{ |
|
|
struct lightningd *ld = new_lightningd(NULL); |
|
|
struct lightningd *ld = new_lightningd(NULL); |
|
@ -250,7 +264,6 @@ int main(int argc, char *argv[]) |
|
|
#if 0 |
|
|
#if 0 |
|
|
/* Load peers from database. */ |
|
|
/* Load peers from database. */ |
|
|
db_load_peers(dstate); |
|
|
db_load_peers(dstate); |
|
|
|
|
|
|
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
for (;;) { |
|
|
for (;;) { |
|
@ -265,6 +278,8 @@ int main(int argc, char *argv[]) |
|
|
timer_expired(&ld->dstate, expired); |
|
|
timer_expired(&ld->dstate, expired); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
shutdown_subdaemons(ld); |
|
|
|
|
|
|
|
|
tal_free(ld); |
|
|
tal_free(ld); |
|
|
opt_free_table(); |
|
|
opt_free_table(); |
|
|
return 0; |
|
|
return 0; |
|
|