summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/config.c7
-rw-r--r--src/config.h1
-rw-r--r--src/fastd.c3
3 files changed, 6 insertions, 5 deletions
diff --git a/src/config.c b/src/config.c
index 6b91383..9e04299 100644
--- a/src/config.c
+++ b/src/config.c
@@ -529,12 +529,9 @@ void fastd_configure(fastd_context_t *ctx, fastd_config_t *conf, int argc, char
if (!conf->log_stderr_level && !conf->log_syslog_level && !conf->log_files)
conf->log_stderr_level = FASTD_DEFAULT_LOG_LEVEL;
+}
- ctx->conf = conf;
-
- if (conf->generate_key || conf->show_key)
- return;
-
+void fastd_config_check(fastd_context_t *ctx, fastd_config_t *conf) {
if (conf->ifname) {
if (strchr(conf->ifname, '/'))
exit_error(ctx, "config error: invalid interface name");
diff --git a/src/config.h b/src/config.h
index d12e5ef..9484598 100644
--- a/src/config.h
+++ b/src/config.h
@@ -40,6 +40,7 @@ void fastd_config_peer_group_push(fastd_context_t *ctx, fastd_config_t *conf, co
void fastd_config_peer_group_pop(fastd_context_t *ctx, fastd_config_t *conf);
void fastd_config_release(fastd_context_t *ctx, fastd_config_t *conf);
void fastd_configure(fastd_context_t *ctx, fastd_config_t *conf, int argc, char *const argv[]);
+void fastd_config_check(fastd_context_t *ctx, fastd_config_t *conf);
void fastd_config_load_peer_dirs(fastd_context_t *ctx, fastd_config_t *conf);
void fastd_config_handle_options(fastd_context_t *ctx, fastd_config_t *conf, int argc, char *const argv[]);
diff --git a/src/fastd.c b/src/fastd.c
index d6bfa2f..e456f14 100644
--- a/src/fastd.c
+++ b/src/fastd.c
@@ -879,6 +879,7 @@ int main(int argc, char *argv[]) {
fastd_config_t conf;
fastd_configure(&ctx, &conf, argc, argv);
+ ctx.conf = &conf;
if (conf.generate_key) {
conf.protocol->generate_key(&ctx);
@@ -899,6 +900,8 @@ int main(int argc, char *argv[]) {
init_log(&ctx);
+ fastd_config_check(&ctx, &conf);
+
update_time(&ctx);
conf.long_ago = ctx.now;