diff options
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.h | 120 |
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 |