* Chas Woodfield, Fretwell Downing Datasystems.
*
* $Log: statserv.c,v $
- * Revision 1.54 1999-04-16 14:45:55 adam
+ * Revision 1.57 1999-07-06 12:17:15 adam
+ * Added option -1 that runs server once (for profiling purposes).
+ *
+ * Revision 1.56 1999/06/10 11:45:30 adam
+ * Added bend_start, bend_stop handlers and removed pre_init.
+ * Handlers bend_start/bend_stop are called when service/daemon is
+ * started/stopped.
+ *
+ * Revision 1.55 1999/06/10 09:18:54 adam
+ * Modified so that pre_init is called when service/server is started.
+ *
+ * Revision 1.54 1999/04/16 14:45:55 adam
* Added interface for tcpd wrapper for access control.
*
* Revision 1.53 1999/02/02 13:57:39 adam
int check_options(int argc, char **argv);
statserv_options_block control_block = {
1, /* dynamic mode */
+ 0, /* one shot (single session) */
LOG_DEFAULT_LEVEL, /* log level */
"", /* no PDUs */
"", /* diagnostic output to stderr */
1024*1024, /* maximum PDU size (approx.) to allow */
"default-config", /* configuration name to pass to backend */
"", /* set user id */
- NULL, /* pre init handler */
+ 0, /* bend_start handler */
+ 0, /* bend_stop handler */
check_options, /* Default routine, for checking the run-time arguments */
check_ip_tcpd,
"",
free(pThreadHandles);
}
+ if (control_block.bend_stop)
+ (*control_block.bend_stop)(&control_block);
/* No longer require the critical section, since all threads are dead */
DeleteCriticalSection(&Thread_CritSect);
}
if (control_block.options_func(argc, argv))
return(1);
+ if (control_block.bend_start)
+ (*control_block.bend_start)(&control_block);
#ifndef WIN32
if (control_block.inetd)
inetd_connection(control_block.default_proto);
else
{
- if (control_block.pre_init)
- (*control_block.pre_init)(&control_block);
if (control_block.dynamic)
signal(SIGCHLD, catchchld);
}
int ret = 0, r;
char *arg;
- while ((ret = options("a:iszSl:v:u:c:w:t:k:d:", argv, argc, &arg)) != -2)
+ while ((ret = options("1a:iszSl:v:u:c:w:t:k:d:", argv, argc, &arg)) != -2)
{
switch (ret)
{
case 0:
add_listener(arg, control_block.default_proto);
break;
+ case '1':
+ control_block.one_shot = 1;
+ control_block.dynamic = 0;
+ break;
case 'z':
control_block.default_proto = PROTO_Z3950;
break;