summaryrefslogtreecommitdiff
path: root/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h')
-rw-r--r--ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h
new file mode 100644
index 00000000000..afe0cfe6e5e
--- /dev/null
+++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h
@@ -0,0 +1,120 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
+ * rights reserved.
+ *
+ * Use of this software is governed by the terms of the license agreement for
+ * the Netscape Communications or Netscape Comemrce Server between the
+ * parties.
+ */
+
+
+/* ------------------------------------------------------------------------ */
+
+
+/*
+ * daemon.h: Things related to the accepting connections
+ *
+ * Rob McCool
+ */
+
+
+#ifndef DAEMON_H
+#define DAEMON_H
+
+#ifdef XP_WIN32
+#include <nt/ntdaemon.h>
+#else
+
+#include "net.h"
+#include "session.h"
+
+#include <pwd.h> /* struct passwd */
+
+
+/* ------------------------------- Defines -------------------------------- */
+
+
+#define child_exit exit
+
+
+/* Codes for child_status */
+#define CHILD_EMPTY_SLOT 0xfe
+#define CHILD_AWAIT_CONNECT 0xff
+#define CHILD_PROCESSING 0x00
+#define CHILD_READING 0x01
+#define CHILD_WRITING 0x02
+#define CHILD_RESOLVING 0x03
+
+
+typedef struct {
+ char *ipstr;
+ int port;
+ struct passwd *pw;
+ char *chr;
+ char *pidfn;
+ void (*rcback)(int);
+#if defined(DAEMON_UNIX_POOL) || defined(DAEMON_UNIX_MOBRULE)
+ int maxprocs, minprocs, proclife;
+#endif
+#ifdef NET_SSL
+ char *secure_keyfn;
+ char *secure_certfn;
+ char *secure_dongle;
+ int secure_auth;
+ int secure_session_timeout;
+ int security;
+#endif
+} daemon_s;
+
+
+/* ------------------------------ Prototypes ------------------------------ */
+
+#ifdef MCC_PROXY
+/* A unique serial number assigned to each child. */
+extern int child_serial;
+#endif
+
+/*
+ * daemon_run accepts whether or not it should detach from its parent process,
+ * and a daemon structure as its arguments. The daemon structure contains
+ * a port number, a root directory to chroot to (can be NULL), a filename to
+ * log the daemon pid to (can be NULL). daemon_run never returns.
+ *
+ * child_callback is a function which will be called every time a new
+ * connection is recieved. Session is a new session ID.
+ *
+ * rcback is a function which is a restart function: When SIGHUP is received,
+ * this function will be called. You may give SIG_DFL if you don't want to
+ * support restarting. The rcback will be passed SIGHUP.
+ *
+ * pw is the passwd entry to run the daemon as. If the effective user id is
+ * root, daemon_run will try to set its uid and gid to the user pointed
+ * to by this structure. You may pass NULL.
+ */
+
+void daemon_run(int det, void (*child_callback)(Session *), daemon_s *d);
+
+/*
+ * fork is a wrapper for the system's fork function. This closes the listen
+ * socket for the mob. This also makes sure that a threaded daemon only gets
+ * the calling thread and not all of them.
+ */
+
+pid_t child_fork(void);
+
+
+/*
+ * Set status to the given code for statistics reporting
+ */
+
+#ifdef DAEMON_STATS
+void child_status(int code);
+#else
+#define child_status(code) (void)(code)
+#endif
+
+
+#endif
+#endif