Call bend_stop only for main process (not from forked child)
[yaz-moved-to-github.git] / server / statserv.c
index c694443..d831e50 100644 (file)
@@ -1,12 +1,12 @@
 /*
- * Copyright (c) 1995-2002, Index Data
+ * Copyright (c) 1995-2003, Index Data
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * NT threaded server code by
  *   Chas Woodfield, Fretwell Downing Informatics.
  *
- * $Id: statserv.c,v 1.87 2002-11-26 16:04:15 adam Exp $
+ * $Id: statserv.c,v 1.89 2003-01-13 14:32:06 adam Exp $
  */
 
 #include <stdio.h>
@@ -354,7 +354,6 @@ void statserv_closedown()
 {
     IOCHAN p;
 
-/* CHANGE */
     if (control_block.bend_stop)
         (*control_block.bend_stop)(&control_block);
     for (p = pListener; p; p = p->next)
@@ -416,6 +415,10 @@ static void listener(IOCHAN h, int event)
                }
                sprintf(nbuf, "%s(%d)", me, getpid());
                yaz_log_init(control_block.loglevel, nbuf, 0);
+                /* ensure that bend_stop is not called when each child exits -
+                   only for the main process .. 
+                */
+                control_block.bend_stop = 0;
            }
            else /* parent */
            {
@@ -719,7 +722,7 @@ int statserv_start(int argc, char **argv)
        inetd_connection(control_block.default_proto);
     else
     {
-       logf (LOG_LOG, "Starting server %s pid=%d", me, getpid());
+       yaz_log (LOG_LOG, "Starting server %s pid=%d", me, getpid());
 #if 0
        sigset_t sigs_to_block;