Fix for daemon mode. Oops.
[become] / src / daemon.c
index 8d69510..6c515f4 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: daemon.c,v 1.12 2003/10/12 00:14:55 mdw Exp $
+ * $Id: daemon.c,v 1.13 2003/10/12 10:00:06 mdw Exp $
  *
  * Running a `become' daemon
  *
@@ -29,6 +29,9 @@
 /*----- Revision history --------------------------------------------------*
  *
  * $Log: daemon.c,v $
+ * Revision 1.13  2003/10/12 10:00:06  mdw
+ * Fix for daemon mode.  Oops.
+ *
  * Revision 1.12  2003/10/12 00:14:55  mdw
  * Major overhaul.  Now uses DSA signatures rather than the bogus symmetric
  * encrypt-and-hope thing.  Integrated with mLib and Catacomb.
@@ -443,13 +446,14 @@ static void daemon__wakeUp(struct timeval *tv, void *p)
  *
  * Arguments:  @const char *cf@ = pointer to name of configuration file
  *             @int port@ = port to listen to, or %$-1$% for default
+ *             @unsigned f@ = various flags
  *
  * Returns:    Never.
  *
  * Use:                Starts `become' up in daemon mode.
  */
 
-void daemon_init(const char *cf, int port)
+void daemon_init(const char *cf, int port, unsigned f)
 {
   int s;
   int i;
@@ -529,8 +533,7 @@ void daemon_init(const char *cf, int port)
 
   /* --- Fork off into the sunset --- */
 
-#ifdef NDEBUG
-  {
+  if (!(f & df_nofork)) {
     int pid = fork();
     FILE *fp;
 
@@ -553,7 +556,6 @@ void daemon_init(const char *cf, int port)
     }
     T( trace(TRACE_DAEMON, "daemon: forked to pid %li", (long)getpid()); )
   }
-#endif
 
   /* --- Set signal handlers --- */