From: Adam Dickmeiss Date: Thu, 10 Jun 1999 11:45:30 +0000 (+0000) Subject: Added bend_start, bend_stop handlers and removed pre_init. X-Git-Tag: YAZ.1.8~345 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=61662168d4d4c1f7edb38cccac4b4a24dcecc58e Added bend_start, bend_stop handlers and removed pre_init. Handlers bend_start/bend_stop are called when service/daemon is started/stopped. --- diff --git a/include/statserv.h b/include/statserv.h index 0326a3b..f27442a 100644 --- a/include/statserv.h +++ b/include/statserv.h @@ -24,7 +24,12 @@ * OF THIS SOFTWARE. * * $Log: statserv.h,v $ - * Revision 1.15 1999-04-16 14:45:55 adam + * Revision 1.16 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.15 1999/04/16 14:45:55 adam * Added interface for tcpd wrapper for access control. * * Revision 1.14 1999/02/02 13:57:32 adam @@ -103,7 +108,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); + void (*bend_start)(struct statserv_options_block *p); + void (*bend_stop)(struct statserv_options_block *p); int (*options_func)(int argc, char **argv); int (*check_ip)(void *cd, const char *addr, int len, int type); char daemon_name[128]; diff --git a/server/service.c b/server/service.c index 29e1c7d..b112e2f 100644 --- a/server/service.c +++ b/server/service.c @@ -3,7 +3,12 @@ * Based on code written by * Chas Woodfield, Fretwell Downing Datasystems. * $Log: service.c,v $ - * Revision 1.2 1999-02-02 13:57:36 adam + * Revision 1.3 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.2 1999/02/02 13:57:36 adam * Uses preprocessor define WIN32 instead of WINDOWS to build code * for Microsoft WIN32. * @@ -438,8 +443,7 @@ BOOL SetupService(int argc, char *argv[], void *pHandle, LPTSTR pAppName, LPTSTR else { /* Set the console control handler for exiting the program */ -/* SetConsoleCtrlHandler((PHANDLER_ROUTINE)EventHandlerRoutine, TRUE); -*/ + SetConsoleCtrlHandler((PHANDLER_ROUTINE)EventHandlerRoutine, TRUE); /* Now do the main work */ ServiceMain(argc, argv); @@ -469,7 +473,7 @@ BOOL EventHandlerRoutine(DWORD dwCtrlType) case CTRL_SHUTDOWN_EVENT: /* A signal that the system sends to all console processes when the system */ /* We are basically shutting down, so call Service_Delete */ Service_Delete(); - return(TRUE); + return(FALSE); break; default: diff --git a/server/statserv.c b/server/statserv.c index cdf75c3..e079866 100644 --- a/server/statserv.c +++ b/server/statserv.c @@ -7,7 +7,12 @@ * Chas Woodfield, Fretwell Downing Datasystems. * * $Log: statserv.c,v $ - * Revision 1.55 1999-06-10 09:18:54 adam + * 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 @@ -237,7 +242,8 @@ statserv_options_block control_block = { 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, "", @@ -405,6 +411,8 @@ void statserv_closedown() 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); } @@ -803,8 +811,8 @@ int statserv_start(int argc, char **argv) if (control_block.options_func(argc, argv)) return(1); - if (control_block.pre_init) - (*control_block.pre_init)(&control_block); + if (control_block.bend_start) + (*control_block.bend_start)(&control_block); #ifndef WIN32 if (control_block.inetd) inetd_connection(control_block.default_proto);