]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/main: set non-buffering stdout/stderr early
authorTomas Krizek <tomas.krizek@nic.cz>
Mon, 20 Jan 2020 16:49:28 +0000 (17:49 +0100)
committerTomas Krizek <tomas.krizek@nic.cz>
Fri, 24 Jan 2020 12:19:05 +0000 (13:19 +0100)
Journald was missing some error messages when kresd failed to start.

daemon/main.c

index 21c4a2d51d3ab07475b427b5242baaa01492dc53..f329f4d5ae735d258599a91b75a440605e99aef4 100644 (file)
@@ -265,12 +265,6 @@ static int run_worker(uv_loop_t *loop, struct engine *engine, fd_array_t *ipc_se
                return EXIT_FAILURE;
        }
 
-       if (setvbuf(stdout, NULL, _IONBF, 0) || setvbuf(stderr, NULL, _IONBF, 0)) {
-               kr_log_error("[system] failed to to set output buffering (ignored): %s\n",
-                               strerror(errno));
-               fflush(stderr);
-       }
-
        /* Control sockets or TTY */
        uv_pipe_t pipe;
        uv_pipe_init(loop, &pipe, 0);
@@ -526,6 +520,12 @@ static void drop_capabilities(void)
 
 int main(int argc, char **argv)
 {
+       if (setvbuf(stdout, NULL, _IONBF, 0) || setvbuf(stderr, NULL, _IONBF, 0)) {
+               kr_log_error("[system] failed to to set output buffering (ignored): %s\n",
+                               strerror(errno));
+               fflush(stderr);
+       }
+
        the_args = &the_args_value;
        args_init(the_args);
        int ret = parse_args(argc, argv, the_args);