Added interface for tcpd wrapper for access control.
[yaz-moved-to-github.git] / include / statserv.h
index 1caa038..0326a3b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
  *
  * Permission to use, copy, modify, distribute, and sell this software and
  * its documentation, in whole or in part, for any purpose, is hereby granted,
  * OF THIS SOFTWARE.
  *
  * $Log: statserv.h,v $
- * Revision 1.5  1995-06-19 12:38:31  quinn
+ * 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
+ * Uses preprocessor define WIN32 instead of WINDOWS to build code
+ * for Microsoft WIN32.
+ *
+ * Revision 1.13  1998/02/10 10:28:56  adam
+ * Added app_name, service_dependencies, service_display_name and
+ * options_func. options_func allows us to specify a different function
+ * to interogate the command line arguments. The other members allow us
+ * to pass the full service details accross to the service manager (CW).
+ *
+ * Revision 1.??? 1997/12/18   Chas
+ * Added app_name, service_dependencies, service_display_name and 
+ * options_func. options_func allows us to specify a different function 
+ * to interogate the command line arguments. The other members allow us
+ * to pass the full service details accross to the service manager.
+ *
+ * Revision 1.12  1997/11/07 13:31:47  adam
+ * Added NT Service name part of statserv_options_block. Moved NT
+ * service utility to server library.
+ *
+ * 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
+ * New windows NT/95 port using MSV5.0. To export DLL functions the
+ * YAZ_EXPORT modifier was added. Defined in yconfig.h.
+ *
+ * Revision 1.8  1997/05/14 06:53:51  adam
+ * C++ support.
+ *
+ * Revision 1.7  1995/09/29 17:12:12  quinn
+ * Smallish
+ *
+ * Revision 1.6  1995/09/27  15:02:53  quinn
+ * Modified function heads & prototypes.
+ *
+ * Revision 1.5  1995/06/19  12:38:31  quinn
  * Reorganized include-files. Added small features.
  *
  * Revision 1.4  1995/06/15  07:45:08  quinn
 #ifndef STATSERVER_H
 #define STATSERVER_H
 
+#include <yconfig.h>
+#include <odr.h>
 #include <oid.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
 typedef struct statserv_options_block
 {
     int dynamic;                  /* fork on incoming requests */
@@ -53,10 +103,32 @@ 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);
+    int (*options_func)(int argc, char **argv);
+    int (*check_ip)(void *cd, const char *addr, int len, int type);
+    char daemon_name[128];
+    int inetd;                    /* Do we use the inet deamon or not */
+    
+#ifdef WIN32
+    /* We only have these members for the windows version */
+    /* They seemed a bit large to have them there in general */
+    char service_name[128];         /* NT Service Name */
+    char app_name[128];             /* Application Name */
+    char service_dependencies[128]; /* The services we are dependent on */
+    char service_display_name[128]; /* The service display name */
+#endif /* WIN32 */
 } statserv_options_block;
-
+    
 int statserv_main(int argc, char **argv);
+int statserv_start(int argc, char **argv);
+void statserv_closedown(void);
 statserv_options_block *statserv_getcontrol(void);
 void statserv_setcontrol(statserv_options_block *block);
 
+int check_ip_tcpd(void *cd, const char *addr, int len, int type);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif