Update headers and omit CVS Ids.
[yaz-moved-to-github.git] / src / daemon.c
index a3a6ab1..82fe6cf 100644 (file)
@@ -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.1 2008-02-18 17:07:06 adam Exp $
  */
 
 /**
 #include <signal.h>
 #include <string.h>
 #include <errno.h>
+#if HAVE_UNISTD_H
 #include <unistd.h>
-#include <assert.h>
+#endif
 #include <stdlib.h>
 #include <signal.h>
+#if HAVE_SYS_WAIT_H
 #include <sys/wait.h>
+#endif
+
 #include <sys/types.h>
+
+#if HAVE_SYS_STAT_H
 #include <sys/stat.h>
+#endif
+
 #include <fcntl.h>
+
+#if HAVE_PWD_H
 #include <pwd.h>
+#endif
 
 #include <yaz/daemon.h>
 #include <yaz/log.h>
 #include <yaz/snprintf.h>
 
+#if HAVE_PWD_H
 static void write_pidfile(int pid_fd)
 {
     if (pid_fd != -1)
@@ -134,26 +144,28 @@ 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++;
     }
 }
+#endif
 
 int yaz_daemon(const char *progname,
                unsigned int flags,
                void (*work)(void *data), void *data,
                const char *pidfile, const char *uid)
 {
+#if HAVE_PWD_H
     int pid_fd = -1;
 
     /* open pidfile .. defer write until in child and after setuid */
@@ -249,6 +261,10 @@ int yaz_daemon(const char *progname,
         work(data);
     }
     return 0;
+#else
+    work(data);
+    return 0;
+#endif
 }
 
 /*