Added new member to statserver_options_block, pre_init, which
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 27 Oct 1997 14:03:01 +0000 (14:03 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 27 Oct 1997 14:03:01 +0000 (14:03 +0000)
specifies a callback to be invoked after command line parsing and
before the server listens for the first time.

CHANGELOG
include/statserv.h
server/statserv.c

index 7d77a87..13e178e 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,9 @@
 Possible compatibility problems with earlier versions marked with '*'.
 
+Fixed memory leak in server. Request queue member wasn't freed.
+
+Fixed nmem_exit so that memory is freed.
+
 --- 1.4 1997/10/2
 
 Revised the CCL parser utility to be thread safe.
index 7b282e6..a8f3da2 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: statserv.h,v $
- * Revision 1.10  1997-09-01 09:31:26  adam
+ * Revision 1.11  1997-10-27 14:03:01  adam
+ * Added new member to statserver_options_block, pre_init, which
+ * specifies a callback to be invoked after command line parsing and
+ * before the server listens for the first time.
+ *
+ * Revision 1.10  1997/09/01 09:31:26  adam
  * Removed definition statserv_remove to eventl.h. (A hack really).
  *
  * Revision 1.9  1997/09/01 08:49:53  adam
@@ -74,6 +79,8 @@ typedef struct statserv_options_block
     int maxrecordsize;            /* maximum value for negotiation */
     char configname[ODR_MAXNAME+1];  /* given to the backend in bend_init */
     char setuid[ODR_MAXNAME+1];     /* setuid to this user after binding */
+
+    void (*pre_init)(struct statserv_options_block *p);
 } statserv_options_block;
 
 int statserv_main(int argc, char **argv);
index 64477ea..e777879 100644 (file)
@@ -7,7 +7,12 @@
  *   Chas Woodfield, Fretwell Downing Datasystem.
  *
  * $Log: statserv.c,v $
- * Revision 1.41  1997-09-29 07:19:32  adam
+ * Revision 1.42  1997-10-27 14:03:02  adam
+ * Added new member to statserver_options_block, pre_init, which
+ * specifies a callback to be invoked after command line parsing and
+ * before the server listens for the first time.
+ *
+ * Revision 1.41  1997/09/29 07:19:32  adam
  * Server library uses nmem_init/nmem_exit. The log prefix no longer
  * includes leading path on NT.
  *
@@ -181,7 +186,8 @@ static statserv_options_block control_block = {
     60,                         /* idle timeout (minutes) */
     1024*1024,                  /* maximum PDU size (approx.) to allow */
     "default-config",           /* configuration name to pass to backend */
-    ""                          /* set user id */
+    "",                         /* set user id */
+    NULL
 };
 
 /*
@@ -777,10 +783,6 @@ int statserv_main(int argc, char **argv)
             }
     }
 
-#if 0
-    log_init(control_block.loglevel, NULL, control_block.logfile);
-#endif /* WINDOWS */
-
     if ((pListener == NULL) && *control_block.default_listen)
            add_listener(control_block.default_listen, protocol);
 
@@ -789,6 +791,8 @@ int statserv_main(int argc, char **argv)
        inetd_connection(protocol);
     else
     {
+       if (control_block.pre_init)
+           (*control_block.pre_init)(&control_block);
        if (control_block.dynamic)
            signal(SIGCHLD, catchchld);
     }