]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/main: use engine_loadconf() for default config
authorTomas Krizek <tomas.krizek@nic.cz>
Wed, 11 Dec 2019 12:09:35 +0000 (13:09 +0100)
committerPetr Špaček <petr.spacek@nic.cz>
Thu, 19 Dec 2019 08:31:25 +0000 (09:31 +0100)
daemon/engine.c
daemon/engine.h
daemon/main.c

index 72f50c672caf4aa44d493922e4fe9c82474e4a15..473e190207261c763542d19c679bc92b0fff5ad5 100644 (file)
@@ -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 */
index d968aff86ba6b86479fee1d92a233861c3c4d19e..64f23f69a19815824572189a028cf04cdcc14766 100644 (file)
@@ -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);
index 7c5659031034885961f3335bd5a8711e0e7d6203..33c8622f929de85f82214212459b48ab95b6c661 100644 (file)
@@ -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();