From 6e3298c7387aa9aa990d5eb9645c7f90972e6dcb Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Fri, 31 Dec 2010 16:09:49 +0100 Subject: [PATCH] Moved fork after initialization This way, errors are reported properly. --- nwhod.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/nwhod.c b/nwhod.c index 1dd75d7..5f3b0ac 100644 --- a/nwhod.c +++ b/nwhod.c @@ -310,6 +310,12 @@ do_tick(void) static void daemonize(void) { + pid_t pid = fork(); + if (pid < 0) + die("Fork failed: %m"); + if (pid) + exit(0); + close(0); close(1); close(2); @@ -366,24 +372,14 @@ client(char *serv) int main(int argc, char **argv) { - int pid; - - if (argc != 1 && argc != 2) - { - fprintf(stderr, "Usage: nwhod []\n"); - return 1; - } - pid = fork(); - if (pid < 0) - { - perror("fork"); - return 1; - } - if (pid) - return 0; if (argc == 2) client(argv[1]); else if (argc == 1) server(); - return 1; + else + { + fprintf(stderr, "Usage: nwhod []\n"); + return 1; + } + return 0; } -- 2.39.2