diff --git a/daemon/options.c b/daemon/options.c index 5984b07fe..aaf0f0c35 100644 --- a/daemon/options.c +++ b/daemon/options.c @@ -447,8 +447,10 @@ static void opt_parse_from_config(struct lightningd_state *dstate) tal_free(contents); } -void handle_opts(struct lightningd_state *dstate, int argc, char *argv[]) +bool handle_opts(struct lightningd_state *dstate, int argc, char *argv[]) { + bool newdir = false; + opt_set_alloc(opt_allocfn, tal_reallocfn, tal_freefn); opt_register_noarg("--help|-h", opt_usage_and_exit, @@ -482,6 +484,7 @@ void handle_opts(struct lightningd_state *dstate, int argc, char *argv[]) if (chdir(dstate->config_dir) != 0) fatal("Could not change directory %s: %s", dstate->config_dir, strerror(errno)); + newdir = true; } /* Now look for config file */ @@ -492,4 +495,5 @@ void handle_opts(struct lightningd_state *dstate, int argc, char *argv[]) errx(1, "no arguments accepted"); check_config(dstate); + return newdir; } diff --git a/daemon/options.h b/daemon/options.h index 66b844888..01759cf17 100644 --- a/daemon/options.h +++ b/daemon/options.h @@ -5,7 +5,9 @@ struct lightningd_state; -/* After this, we're in the .lightning dir, config file parsed. */ -void handle_opts(struct lightningd_state *dstate, int argc, char *argv[]); +/* After this, we're in the .lightning dir, config file parsed. + * If we just created the dir, returns true. + */ +bool handle_opts(struct lightningd_state *dstate, int argc, char *argv[]); #endif /* LIGHTNING_DAEMON_OPTIONS_H */