From c4159a200151b1704984ec01f48356fbc757372d Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 27 Oct 1997 14:03:01 +0000 Subject: [PATCH] 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. --- CHANGELOG | 4 ++++ include/statserv.h | 9 ++++++++- server/statserv.c | 16 ++++++++++------ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 7d77a87..13e178e 100644 --- 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. diff --git a/include/statserv.h b/include/statserv.h index 7b282e6..a8f3da2 100644 --- a/include/statserv.h +++ b/include/statserv.h @@ -24,7 +24,12 @@ * 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); diff --git a/server/statserv.c b/server/statserv.c index 64477ea..e777879 100644 --- a/server/statserv.c +++ b/server/statserv.c @@ -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); } -- 1.7.10.4