X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fdaemon.c;h=c4746ca95495e6bee1594f9f0d83f34a92ab162c;hb=3c03c66fdcf640bbf4c611a48bf8c74989d077f6;hp=f9d663aef228ae0ae520da780134aee654e97bf5;hpb=2dbe1df5facb92bac31b5da0ca2e2e8ee6f9b358;p=yaz-moved-to-github.git diff --git a/src/daemon.c b/src/daemon.c index f9d663a..c4746ca 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -1,8 +1,6 @@ -/* - * Copyright (C) 1995-2008, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2008 Index Data * See the file LICENSE for details. - * - * $Id: daemon.c,v 1.2 2008-02-21 10:15:30 adam Exp $ */ /** @@ -21,15 +19,12 @@ #include #endif #include -#include #if HAVE_SYS_WAIT_H #include #endif +#if HAVE_SYS_TYPES_H #include - -#if HAVE_SYS_STAT_H -#include #endif #include @@ -146,17 +141,17 @@ static void keepalive(void (*work)(void *data), void *data) yaz_log(YLOG_WARN, "Received SIG %d from child %ld", WTERMSIG(status), (long) p); cont = 0; - } - } - else if (status == 0) - cont = 0; /* child exited normally */ - else - { /* child exited with error */ - yaz_log(YLOG_LOG, "Exit %d from child %ld", status, (long) p); - cont = 0; } + } + else if (status == 0) + cont = 0; /* child exited normally */ + else + { /* child exited with error */ + yaz_log(YLOG_LOG, "Exit %d from child %ld", status, (long) p); + cont = 0; + } if (cont) /* respawn slower as we get more errors */ - sleep(1 + run/5); + sleep(1 + run/5); run++; } } @@ -248,7 +243,10 @@ int yaz_daemon(const char *progname, close(1); close(2); open("/dev/null", O_RDWR); - dup(0); dup(0); + if (dup(0) == -1) + return 1; + if (dup(0) == -1) + return 1; close(hand[1]); }