From f54d790914c4c5f8e1cc5b310e44160bb91ca3f9 Mon Sep 17 00:00:00 2001 From: Tomas Krizek Date: Wed, 11 Dec 2019 13:09:35 +0100 Subject: [PATCH] daemon/main: use engine_loadconf() for default config --- daemon/engine.c | 11 ----------- daemon/engine.h | 1 - daemon/main.c | 26 ++++++++++---------------- 3 files changed, 10 insertions(+), 28 deletions(-) diff --git a/daemon/engine.c b/daemon/engine.c index 72f50c672..473e19020 100644 --- a/daemon/engine.c +++ b/daemon/engine.c @@ -716,17 +716,6 @@ int engine_loadconf(struct engine *engine, const char *config_path) return ret; } -int engine_load_defaults(struct engine *engine) -{ - /* Load defaults */ - int ret = luaL_dofile(engine->L, LIBDIR "/config.lua"); - if (ret != 0) { - fprintf(stderr, "%s\n", lua_tostring(engine->L, -1)); - lua_pop(engine->L, 1); - } - return ret; -} - int engine_start(struct engine *engine) { /* Clean up stack */ diff --git a/daemon/engine.h b/daemon/engine.h index d968aff86..64f23f69a 100644 --- a/daemon/engine.h +++ b/daemon/engine.h @@ -57,7 +57,6 @@ int engine_ipc(struct engine *engine, const char *expr); int engine_load_sandbox(struct engine *engine); int engine_loadconf(struct engine *engine, const char *config_path); -int engine_load_defaults(struct engine *engine); /** Start the lua engine and execute the config. */ int engine_start(struct engine *engine); diff --git a/daemon/main.c b/daemon/main.c index 7c5659031..33c8622f9 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -537,6 +537,7 @@ static int parse_args(int argc, char **argv, struct args *args) array_push(args->addrs_tls, optarg); break; case 'c': + assert(optarg != NULL); array_push(args->config, optarg); break; case 'f': @@ -762,17 +763,21 @@ int main(int argc, char **argv) } } - /* Check config(s) are read-able */ + /* Select which config files to load and verify they are read-able. */ + bool load_defaults = true; for (size_t i = 0; i < args.config.len; ++i) { const char *config = args.config.at[i]; - if (config != NULL && strcmp(config, "-") != 0 && access(config, R_OK) != 0) { + if (strcmp(config, "-") == 0) { + load_defaults = false; + } else if (access(config, R_OK) != 0) { kr_log_error("[system] config '%s': %s\n", config, strerror(errno)); return EXIT_FAILURE; } } - if (args.config.len == 0 && access("config", R_OK) == 0) { + if (args.config.len == 0 && access("config", R_OK) == 0) array_push(args.config, "config"); - } + if (load_defaults) + array_push(args.config, LIBDIR "/config.lua"); /* File-descriptor count limit: soft->hard. */ struct rlimit rlim; @@ -876,25 +881,14 @@ int main(int argc, char **argv) goto cleanup; } - bool load_defaults = true; for (size_t i = 0; i < args.config.len; ++i) { const char *config = args.config.at[i]; - if (config == NULL) - continue; - if (strcmp(config, "-") == 0) { - load_defaults = false; - continue; - } - if(engine_loadconf(&engine, config) != 0) { + if (strcmp(config, "-") != 0 && engine_loadconf(&engine, config) != 0) { ret = EXIT_FAILURE; goto cleanup; } lua_settop(engine.L, 0); } - if (load_defaults && engine_load_defaults(&engine) != 0) { - ret = EXIT_FAILURE; - goto cleanup; - } drop_capabilities(); -- 2.47.2