diff options
Diffstat (limited to 'ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base')
21 files changed, 3243 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h new file mode 100644 index 00000000000..f172efcb93a --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h @@ -0,0 +1,220 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * buffer.h: For performing buffered I/O on a file or socket descriptor. + * + * This is an abstraction to allow I/O to be performed regardless of the + * current system. That way, an integer file descriptor can be used under + * UNIX but a stdio FILE structure could be used on systems which don't + * support that or don't support it as efficiently. + * + * Two abstractions are defined: A file buffer, and a network buffer. A + * distinction is made so that mmap() can be used on files (but is not + * required). Also, the file buffer takes a file name as the object to + * open instead of a file descriptor. A lot of the network buffering + * is almost an exact duplicate of the non-mmap file buffering. + * + * If an error occurs, system-independent means to obtain an error string + * are also provided. However, if the underlying system is UNIX the error + * may not be accurate in a threaded environment. + * + * Rob McCool + * + */ + + +#ifndef BUFFER_H +#define BUFFER_H + +#ifdef XP_WIN32 +#include <nt/ntbuffer.h> +#else + + +/* + * We need certain system specific functions and symbols. + */ + +#include "file.h" +#include "net.h" + +/* + * Requires that the macro MALLOC be set to a "safe" malloc that will + * exit if no memory is available. If not under MCC httpd, define MALLOC + * to be the real malloc and play with fire, or make your own function. + */ + +#include "../netsite.h" + +#ifdef FILE_UNIX_MMAP +#include <sys/types.h> /* caddr_t */ +#endif + + +/* ------------------------------ Structures ------------------------------ */ + +#ifdef FILE_UNIX_MMAP +typedef struct { + SYS_FILE fd; + caddr_t fp; + int len; + + char *inbuf; /* for buffer_grab */ + int cursize; + + int pos; + char *errmsg; +} filebuf; + +#else + +typedef struct { + SYS_FILE fd; + + int pos, cursize, maxsize; + char *inbuf; + char *errmsg; +} filebuf; + +#endif + +typedef struct { + SYS_NETFD sd; + + int pos, cursize, maxsize, rdtimeout; + char *inbuf; + char *errmsg; +} netbuf; + + +/* -------------------------------- Macros -------------------------------- */ + + +/* + * netbuf_getc gets a character from the given network buffer and returns + * it. (as an integer). + * + * It will return (int) IO_ERROR for an error and (int) IO_EOF for + * an error condition or EOF respectively. + */ + +#define netbuf_getc(b) \ + ((b)->pos != (b)->cursize ? (int)((b)->inbuf[(b)->pos++]) : netbuf_next(b,1)) + +#ifdef FILE_UNIX_MMAP +#define filebuf_getc(b) ((b)->pos == (b)->len ? IO_EOF : (b)->fp[(b)->pos++]) +#else +#define filebuf_getc(b) \ + ((b)->pos != (b)->cursize ? (int)((b)->inbuf[(b)->pos++]) : filebuf_next(b,1)) +#endif + + +/* + * buffer_error returns the last error that occurred with buffer. Don't use + * this unless you know an error occurred. Independent of network/file type. + */ + +#define buffer_error(b) ((b)->errmsg) + +/* + * buffer_flush flushes any data after the current pos to the file + * descriptor fd. Regardless of buffer type. + */ + +#define buffer_flush(buf,fd) \ + system_write(fd,&(buf)->inbuf[(buf)->pos], (buf)->cursize - (buf)->pos) + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * buffer_open opens a new buffer reading the specified file, with an I/O + * buffer of size sz, and returns a new buffer structure which will hold + * the data. + * + * If FILE_UNIX_MMAP is defined, this may return NULL. If it does, check + * system_errmsg to get a message about the error. + */ + +filebuf *filebuf_open(SYS_FILE fd, int sz); +netbuf *netbuf_open(SYS_NETFD sd, int sz); + +/* + * filebuf_open_nostat is a convenience function for mmap() buffer opens, + * if you happen to have the stat structure already. + */ + +#ifdef FILE_UNIX_MMAP +#include <sys/stat.h> +filebuf *filebuf_open_nostat(SYS_FILE fd, int sz, struct stat *finfo); + +#else +#define filebuf_open_nostat(fd,sz,finfo) filebuf_open(fd,sz) +#endif + +/* + * buffer_next loads size more bytes into the given buffer and returns the + * first one, or BUFFER_EOF on EOF and BUFFER_ERROR on error. + */ + +int filebuf_next(filebuf *buf, int advance); +int netbuf_next(netbuf *buf, int advance); + +/* + * buffer_close deallocates a buffer and closes its associated files + * (does not close a network socket). + */ + +void filebuf_close(filebuf *buf); +void netbuf_close(netbuf *buf); + +/* + * buffer_grab will set the buffer's inbuf array to an array of sz bytes + * from the buffer's associated object. It returns the number of bytes + * actually read (between 1 and sz). It returns IO_EOF upon EOF or IO_ERROR + * upon error. The cursize entry of the structure will reflect the size + * of the iobuf array. + * + * The buffer will take care of allocation and deallocation of this array. + */ + +int filebuf_grab(filebuf *buf, int sz); +int netbuf_grab(netbuf *buf, int sz); + + +/* + * netbuf_buf2sd will send n bytes from the (probably previously read) + * buffer and send them to sd. If sd is -1, they are discarded. If n is + * -1, it will continue until EOF is recieved. Returns IO_ERROR on error + * and the number of bytes sent any other time. + */ + +int netbuf_buf2sd(netbuf *buf, SYS_NETFD sd, int len); + +/* + * filebuf_buf2sd assumes that nothing has been read from the filebuf, + * and just sends the file out to the given socket. Returns IO_ERROR on error + * and the number of bytes sent otherwise. + * + * Does not currently support you having read from the buffer previously. This + * can be changed transparently. + */ + +int filebuf_buf2sd(filebuf *buf, SYS_NETFD sd); + +#endif +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h new file mode 100644 index 00000000000..13849531fd2 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h @@ -0,0 +1,146 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * cinfo.h: Content Information for a file, i.e. its type, etc. + * + * See cinfo.c for dependency information. + * + * Rob McCool + */ + + + +#ifndef CINFO_H +#define CINFO_H + + + +/* ------------------------------ Constants ------------------------------- */ + + +/* + * This will be the first string in the file, followed by x.x version + * where x is an integer. + * + * Updated due to trendy name change + */ + +#define MCC_MT_MAGIC "#--Mosaic Communications Corporation MIME Information" +#define MCC_MT_MAGIC_LEN 53 +#define NCC_MT_MAGIC "#--Netscape Communications Corporation MIME Information" +#define NCC_MT_MAGIC_LEN 55 + +/* The character which separates extensions with cinfo_find */ + +#define CINFO_SEPARATOR '.' + +/* The maximum length of a line in this file */ + +#define CINFO_MAX_LEN 1024 + +/* The hash function for the database. Hashed on extension. */ +#include <ctype.h> +#define CINFO_HASH(s) (isalpha(s[0]) ? tolower(s[0]) - 'a' : 26) + +/* The hash table size for that function */ +#define CINFO_HASHSIZE 27 + + +/* ------------------------------ Structures ------------------------------ */ + + +/* + * The ContentInfo structure. + * + * Currently, we support the following attributes: + * + * 1. Type: This identifies what kind of data is in the file. + * 2. Encoding: Identifies any compression or otherwise content-independent + * transformation which has been applied to the file (uuencode, etc.) + * 3. Language: Identifies the language a text document is in. + * 4. Description: A text string describing the file. + * 5. Viewer: The program to use to view the file. + * + * Multiple items are separated with a comma, e.g. + * encoding="x-gzip, x-uuencode" + */ + +typedef struct { + char *type; + char *encoding; + char *language; +} cinfo; + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * cinfo_init initializes the content info system. Call this before + * cinfo_merge. + */ + +void cinfo_init(void); + +/* + * cinfo_terminate frees the database for shutdown. + */ + +void cinfo_terminate(void); + +/* + * cinfo_merge merges the contents of the given filename with the current + * cinfo database. It returns NULL upon success and a string (which you + * must deallocate) upon error. + */ + +char *cinfo_merge(char *fn); + + +/* + * cinfo_find finds any content information for the given uri. The file name + * is the string following the last / in the uri. Multiple extensions are + * separated by CINFO_SEPARATOR. You may pass in a filename instead of uri. + * + * Returns a newly allocated cinfo structure with the information it + * finds. The elements of this structure are coming right out of the types + * database and so if you change it or want to keep it around for long you + * should strdup it. You should free only the structure itself when finished + * with it. + * + * If there is no information for any one of the extensions it + * finds, it will ignore that extension. If it cannot find information for + * any of the extensions, it will return NULL. + */ + +cinfo *cinfo_find(char *uri); + +/* + * cinfo_lookup finds the information about the given content-type, and + * returns a cinfo structure so you can look up description and icon. + */ + +cinfo *cinfo_lookup(char *type); + +/* + * cinfo_dump_database dumps the current database to the given file desc. + */ + +#include <stdio.h> +void cinfo_dump_database(FILE *dump); + + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h new file mode 100644 index 00000000000..c661be47eef --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h @@ -0,0 +1,127 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * crit.h: Critical section abstraction. Used in threaded servers to protect + * areas where two threads can interfere with each other. + * + * Condvars are condition variables that are used for thread-thread + * synchronization. + * + * Rob McCool + */ + +#ifndef CRIT_H +#define CRIT_H + + +#ifdef USE_NSPR +#include <nspr/prmon.h> +typedef PRMonitor* CRITICAL; +#else +typedef void *CRITICAL; +#endif + +/* + * crit_init creates and returns a new critical section variable. At the + * time of creation no one has entered it. + */ +#ifdef USE_NSPR +#define crit_init() PR_NewMonitor(0) +#else +#define crit_init() (NULL) +#endif + +/* + * crit_enter enters a critical section. If someone is already in the + * section, the calling thread is blocked until that thread exits. + */ +#ifdef USE_NSPR +#define crit_enter(id) PR_EnterMonitor(id) +#else +#define crit_enter(id) (0) +#endif + +/* + * crit_exit exits a critical section. If another thread is blocked waiting + * to enter, it will be unblocked and given ownership of the section. + */ +#ifdef USE_NSPR +#define crit_exit(id) PR_ExitMonitor(id) +#else +#define crit_exit(id) (0) +#endif + +/* + * crit_terminate removes a previously allocated critical section variable. + */ +#ifdef USE_NSPR +#define crit_terminate(id) PR_DestroyMonitor(id) +#else +#define crit_terminate(id) (0) +#endif + + +#ifdef USE_NSPR +typedef PRMonitor* CONDVAR; +#else +typedef void* CONDVAR; +#endif + +/* + * condvar_init initializes and returns a new condition variable. You + * must provide a critical section to be associated with this condition + * variable. + */ +#ifdef USE_NSPR +#define condvar_init(crit) (crit) +#else +#define condvar_init(crit) (crit) +#endif + +/* + * condvar_wait blocks on the given condition variable. The calling thread + * will be blocked until another thread calls condvar_notify on this variable. + * The caller must have entered the critical section associated with this + * condition variable prior to waiting for it. + */ +#ifdef USE_NSPR +#define condvar_wait(cv) (PR_Wait(cv, LL_MAXINT)) +#else +#define condvar_wait(cv) (0) +#endif + +/* + * condvar_notify awakens any threads blocked on the given condition + * variable. The caller must have entered the critical section associated + * with this variable first. + */ +#ifdef USE_NSPR +#define condvar_notify(cv) (PR_Notify(cv)) +#else +#define condvar_notify(cv) (0) +#endif + +/* + * condvar_terminate frees the given previously allocated condition variable + */ +#ifdef USE_NSPR +#define condvar_terminate(cv) (0) +#else +#define condvar_terminate(cv) (0) +#endif + + +#endif 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 diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h new file mode 100644 index 00000000000..3b8a44d6c38 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h @@ -0,0 +1,124 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * dll.h: Handle dynamically linked libraries + * + * Rob McCool + */ + +#ifndef _DLL_H +#define _DLL_H + +#include "systems.h" + +#if defined(DLL_CAPABLE) + +/* --------------------------- Data structures ---------------------------- */ + + +#if defined(USE_NSPR) +#include <nspr/prlink.h> +typedef int DLHANDLE; + +#elif defined(DLL_DLOPEN) +#include <dlfcn.h> +typedef void *DLHANDLE; /* DLOPEN */ + +#elif defined(DLL_HPSHL) +#include <dl.h> +typedef shl_t DLHANDLE; /* HP_SHL */ + +#elif defined(DLL_WIN32) +typedef HINSTANCE DLHANDLE; /* WIN32 */ +#endif + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * dll_open loads the library at the given path into memory, and returns + * a handle to be used in later calls to dll_findsym and dll_close. + */ +#if defined(USE_NSPR) +#define dll_open(libfn) PR_LoadLibrary(libfn) + +#elif defined(DLL_DLOPEN) +#define dll_open(libfn) dlopen(libfn, DLL_DLOPEN_FLAGS) + +#elif defined(DLL_HPSHL) +#define dll_open(libfn) shl_load((libfn), BIND_IMMEDIATE, NULL) + +#elif defined(DLL_WIN32) +DLHANDLE dll_open(char *libfn); +#endif + + +/* + * dll_findsym looks for a symbol with the given name in the library + * pointed to by the given handle. Returns a pointer to the named function. + */ + +#if defined(USE_NSPR) +#define dll_findsym(dlp, name) PR_FindSymbol(name) + +#elif defined(DLL_DLOPEN) +#define dll_findsym(dlp, name) dlsym(dlp, name) + +#elif defined(DLL_HPSHL) +void *dll_findsym(DLHANDLE dlp, char *name); + +#elif defined(DLL_WIN32) +#define dll_findsym(dlp, name) GetProcAddress(dlp, name) +#endif + + +/* + * dll_error returns a string describing the last error on the given handle + */ +#if defined(USE_NSPR) +#define dll_error(dlp) system_errmsg(0) + +#elif defined(DLL_DLOPEN) +#define dll_error(dlp) dlerror() + +#elif defined(DLL_HPSHL) +#define dll_error(dlp) system_errmsg(0) + +#elif defined(DLL_WIN32) +#define dll_error(dlp) system_errmsg(0) +#endif + + +/* + * dll_close closes the previously opened library given by handle + */ +#if defined(USE_NSPR) +int dll_close(void *arg); + +#elif defined(DLL_DLOPEN) +#define dll_close dlclose + +#elif defined (DLL_HPSHL) +#define dll_close shl_unload + +#elif defined(DLL_WIN32) +#define dll_close FreeLibrary +#endif + + +#endif /* DLL_CAPABLE */ +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h new file mode 100644 index 00000000000..b6ea5857e54 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h @@ -0,0 +1,121 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * ereport.h: Records transactions, reports errors to administrators, etc. + * + * Rob McCool + */ + + +#ifndef EREPORT_H +#define EREPORT_H + + +#include "../base/session.h" /* Session structure */ +#ifdef XP_UNIX +#include <pwd.h> /* struct passwd */ +#endif /* XP_UNIX */ + + +/* ------------------------------ Constants ------------------------------- */ + + +/* + * The maximum length of an error message. NOT RUN-TIME CHECKED + */ + +#define MAX_ERROR_LEN 8192 + +/* A warning is a minor mishap, such as a 404 being issued. */ +#define LOG_WARN 0 + +/* + * A misconfig is when there is a syntax error or permission violation in + * a config. file. + */ +#define LOG_MISCONFIG 1 + +/* + * Security warnings are issued when authentication fails, or a host is + * given a 403 return code. + */ +#define LOG_SECURITY 2 + +/* + * A failure is when a request could not be fulfilled due to an internal + * problem, such as a CGI script exiting prematurely, or a filesystem + * permissions problem. + */ +#define LOG_FAILURE 3 + +/* + * A catastrophe is a fatal server error such as running out of + * memory or processes, or a system call failing, or even a server crash. + * The server child cannot recover from a catastrophe. + */ +#define LOG_CATASTROPHE 4 + +/* + * Informational message, of no concern. + */ +#define LOG_INFORM 5 + +/* + * The time format to use in the error log + */ + +#define ERR_TIMEFMT "[%d/%b/%Y:%H:%M:%S]" + + +/* The fd you will get if you are reporting errors to SYSLOG */ + +#define ERRORS_TO_SYSLOG -1 + + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * ereport logs an error of the given degree and formats the arguments with + * the printf() style fmt. Returns whether the log was successful. Records + * the current date. + */ + +int ereport(int degree, char *fmt, ...); + +/* + * ereport_init initializes the error logging subsystem and opens the static + * file descriptors. It returns NULL upon success and an error string upon + * error. If a userpw is given, the logs will be chowned to that user. + * + * email is the address of a person to mail upon catastrophic error. It + * can be NULL if no e-mail is desired. ereport_init will not duplicate + * its own copy of this string; you must make sure it stays around and free + * it when you shut down the server. + */ + +char *ereport_init(char *err_fn, char *email, struct passwd *pw); + +/* + * log_terminate closes the error and common log file descriptors. + */ +void ereport_terminate(void); + +/* For restarts */ +SYS_FILE ereport_getfd(void); + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h new file mode 100644 index 00000000000..ef2a1e12842 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h @@ -0,0 +1,61 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +// EVENTLOG.H +// +// This file contains the defines that make NT an installable service. +// +// 1/12/95 aruna +// + +// Functions in eventlog.c +// Win32 specific stuff, so FUZZ: disable check_for_tchar + +VOID InitializeAdminLogging(PCHAR ServiceName, PCHAR MessageFile); +VOID InitializeHttpdLogging(PCHAR ServiceName, PCHAR MessageFile); +VOID InitializeHttpsLogging(PCHAR ServiceName, PCHAR MessageFile); + +VOID TerminateAdminLogging(); +VOID TerminateHttpdLogging(); +VOID TerminateHttpsLogging(); + +VOID LogErrorEvent(PCHAR ServiceName, WORD fwEventType, WORD fwCategory, DWORD IDEvent, + LPTSTR chMsg, LPTSTR lpszMsg); + +// Functions in error.c + +VOID ReportError(PCHAR ErrorMsg); + +BOOL CALLBACK ErrorDialogProc( + HWND hDlg, + UINT message, + WPARAM wParam, + LPARAM lParam + ); + + + + + + + + + + + + + + + diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h new file mode 100644 index 00000000000..8c59a9f2be7 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h @@ -0,0 +1,217 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * file.h: system specific functions for reading/writing files + * + * Rob McCool + */ + + +#ifndef FILE_H +#define FILE_H + +#ifdef XP_WIN32 +#include <nt/ntfile.h> +#else + + +#include "netsite.h" +#include "systems.h" + + +/* + * I cheat: These are set up such that system_read can be a macro for read + * under UNIX. IO_OKAY is anything positive. + */ + +#define IO_OKAY 1 +#define IO_ERROR -1 +#define IO_EOF 0 + + +#ifdef FILE_STDIO +#include <stdio.h> + +#elif defined(FILE_UNIX) +#include <sys/types.h> +#include <sys/file.h> +#include <fcntl.h> +#include <unistd.h> +#endif + + +/* -------------------------- File related defs --------------------------- */ + + +/* The disk page size on this machine. */ +#define FILE_BUFFERSIZE 4096 + + +/* + * The fd data type for this system. + */ + +#if defined(FILE_STDIO) +typedef FILE* SYS_FILE; +#define SYS_ERROR_FD NULL +#define SYS_STDERR stderr + +#elif defined(FILE_UNIX) +typedef int SYS_FILE; +#define SYS_ERROR_FD -1 +#define SYS_STDERR STDERR_FILENO + +#else +#error "undefined file typing for current system" +#endif + +#ifdef XP_UNIX +#define FILE_PATHSEP '/' +#define FILE_PARENT "../" + +#define system_chdir chdir +#endif + + +/* + * system_fread reads sz bytes from fd into to buf, return number of bytes + * read, or IO_EOF if EOF, or IO_ERROR if error. + */ + +#if defined(FILE_STDIO) +int system_fread(SYS_FILE fd, char *buf, int sz); + +#elif defined(FILE_UNIX) +#define system_fread(fd,buf,sz) read(fd,buf,sz) + +#endif + +/* + * system_fopenRO opens a given file for reading only + * system_fopenWA opens a given file for writing, appending new output + */ + +#if defined(FILE_STDIO) +#define system_fopenRO(path) fopen(path,"r") +#define system_fopenWA(path) fopen(path,"a") +#define system_fopenRW(path) fopen(path,"w") + +#elif defined(FILE_UNIX) +#define system_fopenRO(path) open(path, O_RDONLY) +#define system_fopenWA(path) \ + open(path, O_RDWR | O_CREAT | O_APPEND, 0644) +#define system_fopenRW(path) \ + open(path, O_RDWR | O_CREAT, 0644) + +#endif + + +/* + * system_fclose closes the file fd + */ + +#if defined(FILE_STDIO) +#define system_fclose(fd) fclose(fd) + +#elif defined(FILE_UNIX) +#define system_fclose(fd) close(fd) +#endif + +/* + * This call stops core dumps in a portable way. Returns -1 on error. + */ + +int system_nocoredumps(void); + + +#if defined(FILE_STDIO) +#define system_lseek fseek + +#elif defined(FILE_UNIX) +#define system_lseek lseek + +#endif + +/* + * system_write writes sz bytes from buf to fd. The handler function should + * handle partial writes and anything else like that. Returns IO_* + */ + +int system_fwrite(SYS_FILE fd,char *buf,int sz); + +/* + * system_fwrite_atomic locks the given fd before writing to it. This avoids + * interference between simultaneous writes. Returns IO_* + */ + +int system_fwrite_atomic(SYS_FILE fd, char *buf, int sz); + +/* + * system_errmsg returns the last error that occured while processing file + * descriptor fd. fd does not have to be specified (if the error is a global + * such as in UNIX systems). PPS: Rob is a halfwit. This parameter is useless. + */ + +#ifndef FILE_WIN32 +#include <errno.h> + +extern char *sys_errlist[]; +#define file_notfound() (errno == ENOENT) +#define system_errmsg(fd) (sys_errlist[errno]) +#endif + + +/* + * flock locks a file against interference from other processes + * ulock unlocks it. + */ +#ifdef BSD_FLOCK +#include <sys/file.h> +#define system_initlock(fd) (0) +#define system_flock(fd) flock(fd, LOCK_EX) +#define system_ulock(fd) flock(fd, LOCK_UN) + +#elif defined(FILE_UNIX) +#include <unistd.h> +#define system_initlock(fd) (0) +#define system_flock(fd) lockf(fd, F_LOCK, 0) +#define system_ulock(fd) lockf(fd, F_ULOCK, 0) + +#endif + + +/* + * unix2local converts a unix-style pathname to a local one + */ + +#ifdef XP_UNIX +#define file_unix2local(path,p2) strcpy(p2,path) +#endif + +/* -------------------------- Dir related defs ---------------------------- */ + + +#ifdef XP_UNIX +#include <dirent.h> +typedef DIR* SYS_DIR; +typedef struct dirent SYS_DIRENT; +#define dir_open opendir +#define dir_read readdir +#define dir_close closedir + +#endif +#endif +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h new file mode 100644 index 00000000000..597e35a080e --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h @@ -0,0 +1,27 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + + +/* Prototypes for SSL I/O functions */ +extern int SSL_Close(int); +extern int SSL_Socket(int, int, int); +extern int SSL_GetSockOpt(int, int, int, void *, int *); +extern int SSL_SetSockOpt(int, int, int, const void *, int); +extern int SSL_Bind(int, const void *, int); +extern int SSL_Listen(int, int); +extern int SSL_Accept(int, void *, int *); +extern int SSL_Read(int, void *, int); +extern int SSL_Write(int, const void *, int); +extern int SSL_GetPeerName(int, void *, int *); diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h new file mode 100644 index 00000000000..44dfbdc68dc --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h @@ -0,0 +1,180 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * net.h: system specific networking definitions + * + * Rob McCool + */ + + +#ifndef NET_H +#define NET_H + +#include "systems.h" + +#include "file.h" /* for client file descriptors */ + +#include "pblock.h" /* for client data block */ + + +/* This should be a user-given parameter later */ +#define NET_BUFFERSIZE 8192 +/* So should this. */ +#define NET_READ_TIMEOUT 120 +#define NET_WRITE_TIMEOUT 300 + +#define SSL_HANDSHAKE_TIMEOUT 300 + +#if defined(NET_SOCKETS) || defined(NET_SSL) + +#ifdef NET_WINSOCK +#include <winsock.h> +#else /* XP_UNIX */ +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> /* sockaddr and in_addr */ +#include <arpa/inet.h> /* inet_ntoa */ +#include <netdb.h> /* hostent stuff */ +#endif /* NET_WINSOCK */ + +#ifdef NET_SSL +#include "minissl.h" +#endif + + +/* -------------------------------- Global -------------------------------- */ + +extern int net_enabledns; + + + +/* ------------------------------ Data types ------------------------------ */ + + +#ifdef NET_WINSOCK +typedef SOCKET SYS_NETFD; +#else /* XP_UNIX */ +typedef int SYS_NETFD; +#endif /* NET_WINSOCK */ + +#define SYS_NET_ERRORFD -1 + + +/* -------------------------------- Macros -------------------------------- */ + + +/* These may be different for non-UNIX systems. */ + + +#ifndef NET_SSL +#define net_socket socket +#define net_setsockopt setsockopt +#define net_getsockopt getsockopt +#define net_listen listen +#define net_select select +#define net_getpeername getpeername + +#ifndef NET_WINSOCK +#define net_close(sd) close(sd) +#define net_bind bind +#else /* NET_WINSOCK */ +#define net_close(sd) closesocket(sd) +#define system_netbind bind +int net_bind(SYS_NETFD s, const struct sockaddr *name, int namelen); +#endif /* NET_WINSOCK */ + +#ifdef DAEMON_NEEDS_SEMAPHORE +#define net_accept net_semaccept +#else /* ! DAEMON_NEEDS_SEMAPHORE */ +#define net_accept accept +#endif /* DAEMON_NEEDS_SEMAPHORE */ + +#else /* NET_SSL */ +#define net_close(sd) SSL_Close(sd) +#define net_socket SSL_Socket +#define net_setsockopt SSL_SetSockOpt +#define net_getsockopt SSL_GetSockOpt + +#ifdef XP_UNIX +#define net_bind SSL_Bind +#else /* WIN32 */ +#define system_netbind SSL_Bind +int net_bind(SYS_NETFD s, const struct sockaddr *name, int namelen); +#endif /* XP_UNIX */ + +#define net_listen SSL_Listen +#define net_select select /* !!! */ +#define net_getpeername SSL_GetPeerName +#define net_accept SSL_Accept +#endif /* ! NET_SSL */ + + +/* Users should never call the system_net* functions. */ +#ifdef NET_SSL +#define system_netread(sd, buf, sz) SSL_Read(sd, buf, sz) +#define system_netwrite SSL_Write +#else /* ! NET_SSL */ + +#if !defined(NET_WINSOCK) +#define system_netread(sd, buf, sz) read(sd, buf, sz) +#define system_netwrite write +#else /* NET_WINSOCK */ +#define system_netread(sd, buf, sz) recv(sd, buf, sz, 0) +#define system_netwrite(sd, buf, sz) send(sd, buf, sz, 0) +#endif /* ! NET_WINSOCK */ + +#endif /* NET_SSL */ + +int net_read(SYS_NETFD sd, char *buf, int sz, int timeout); +int net_write(SYS_NETFD sd, char *buf, int sz); + +#ifdef DAEMON_NEEDS_SEMAPHORE +int net_semaccept_init(int port); +int net_semaccept(int s, struct sockaddr *addr, int *addrlen); +void net_semaccept_terminate(void); +#endif + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * net_find_fqdn looks through the given hostent structure trying to find + * a FQDN for the host. If it finds none, it returns NULL. Otherwise, it + * returns a newly allocated copy of that string. + */ + +char *net_find_fqdn(struct hostent *p); + +/* + * net_ip2host transforms the given textual IP number into a FQDN. If it + * can't find a FQDN, it will return what it can get. Otherwise, NULL. + * + * verify is whether or not the function should verify the hostname it + * gets. This takes an extra query but is safer for use in access control. + */ + +char *net_ip2host(char *ip, int verify); + +/* + * net_sendmail sends mail to the specified recipient with the given subject + * and message. Currently uses external programs. + */ + +int net_sendmail(char *to, char *subject, char *msg); + +#endif +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h new file mode 100644 index 00000000000..619c1df2621 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h @@ -0,0 +1,47 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * nodelock.h: licensing stuff + */ + +#ifndef _NODELOCK_H +#define _NODELOCK_H + +/* + * Do the initial IP address check and expiration date check. Reads a file + * from admin/config, as #define'd. + * + * Returns 1 on error, 0 on AOK. + */ + +int node_init(void); + +/* + * Check the expiration date against The Now. + * + * Returns 1 on error, 0 on AOK. + */ + +int node_check(void); + +/* + * So how we doin, license + * + * Returns 1 on error, 0 on AOK + */ +int node_status(void); + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h new file mode 100644 index 00000000000..19e9429558d --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h @@ -0,0 +1,738 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* DO NOT EDIT THIS FILE - it is automatically generated */ + +struct _NtError { + int ErrorNumber; + char *ErrorString; + struct _NtError *next; +} ; + +typedef struct _NtError NtError; + +NtError NtErrorStrings[] = { +{ 0 , "ERROR_SUCCESS" }, +{ 0 , "NO_ERROR" }, +{ 1 , "ERROR_INVALID_FUNCTION" }, +{ 2 , "ERROR_FILE_NOT_FOUND" }, +{ 3 , "ERROR_PATH_NOT_FOUND" }, +{ 4 , "ERROR_TOO_MANY_OPEN_FILES" }, +{ 5 , "ERROR_ACCESS_DENIED" }, +{ 6 , "ERROR_INVALID_HANDLE" }, +{ 7 , "ERROR_ARENA_TRASHED" }, +{ 8 , "ERROR_NOT_ENOUGH_MEMORY" }, +{ 9 , "ERROR_INVALID_BLOCK" }, +{ 10 , "ERROR_BAD_ENVIRONMENT" }, +{ 11 , "ERROR_BAD_FORMAT" }, +{ 12 , "ERROR_INVALID_ACCESS" }, +{ 13 , "ERROR_INVALID_DATA" }, +{ 14 , "ERROR_OUTOFMEMORY" }, +{ 15 , "ERROR_INVALID_DRIVE" }, +{ 16 , "ERROR_CURRENT_DIRECTORY" }, +{ 17 , "ERROR_NOT_SAME_DEVICE" }, +{ 18 , "ERROR_NO_MORE_FILES" }, +{ 19 , "ERROR_WRITE_PROTECT" }, +{ 20 , "ERROR_BAD_UNIT" }, +{ 21 , "ERROR_NOT_READY" }, +{ 22 , "ERROR_BAD_COMMAND" }, +{ 23 , "ERROR_CRC" }, +{ 24 , "ERROR_BAD_LENGTH" }, +{ 25 , "ERROR_SEEK" }, +{ 26 , "ERROR_NOT_DOS_DISK" }, +{ 27 , "ERROR_SECTOR_NOT_FOUND" }, +{ 28 , "ERROR_OUT_OF_PAPER" }, +{ 29 , "ERROR_WRITE_FAULT" }, +{ 30 , "ERROR_READ_FAULT" }, +{ 31 , "ERROR_GEN_FAILURE" }, +{ 32 , "ERROR_SHARING_VIOLATION" }, +{ 33 , "ERROR_LOCK_VIOLATION" }, +{ 34 , "ERROR_WRONG_DISK" }, +{ 36 , "ERROR_SHARING_BUFFER_EXCEEDED" }, +{ 38 , "ERROR_HANDLE_EOF" }, +{ 39 , "ERROR_HANDLE_DISK_FULL" }, +{ 50 , "ERROR_NOT_SUPPORTED" }, +{ 51 , "ERROR_REM_NOT_LIST" }, +{ 52 , "ERROR_DUP_NAME" }, +{ 53 , "ERROR_BAD_NETPATH" }, +{ 54 , "ERROR_NETWORK_BUSY" }, +{ 55 , "ERROR_DEV_NOT_EXIST" }, +{ 56 , "ERROR_TOO_MANY_CMDS" }, +{ 57 , "ERROR_ADAP_HDW_ERR" }, +{ 58 , "ERROR_BAD_NET_RESP" }, +{ 59 , "ERROR_UNEXP_NET_ERR" }, +{ 60 , "ERROR_BAD_REM_ADAP" }, +{ 61 , "ERROR_PRINTQ_FULL" }, +{ 62 , "ERROR_NO_SPOOL_SPACE" }, +{ 63 , "ERROR_PRINT_CANCELLED" }, +{ 64 , "ERROR_NETNAME_DELETED" }, +{ 65 , "ERROR_NETWORK_ACCESS_DENIED" }, +{ 66 , "ERROR_BAD_DEV_TYPE" }, +{ 67 , "ERROR_BAD_NET_NAME" }, +{ 68 , "ERROR_TOO_MANY_NAMES" }, +{ 69 , "ERROR_TOO_MANY_SESS" }, +{ 70 , "ERROR_SHARING_PAUSED" }, +{ 71 , "ERROR_REQ_NOT_ACCEP" }, +{ 72 , "ERROR_REDIR_PAUSED" }, +{ 80 , "ERROR_FILE_EXISTS" }, +{ 82 , "ERROR_CANNOT_MAKE" }, +{ 83 , "ERROR_FAIL_I24" }, +{ 84 , "ERROR_OUT_OF_STRUCTURES" }, +{ 85 , "ERROR_ALREADY_ASSIGNED" }, +{ 86 , "ERROR_INVALID_PASSWORD" }, +{ 87 , "ERROR_INVALID_PARAMETER" }, +{ 88 , "ERROR_NET_WRITE_FAULT" }, +{ 89 , "ERROR_NO_PROC_SLOTS" }, +{ 100 , "ERROR_TOO_MANY_SEMAPHORES" }, +{ 101 , "ERROR_EXCL_SEM_ALREADY_OWNED" }, +{ 102 , "ERROR_SEM_IS_SET" }, +{ 103 , "ERROR_TOO_MANY_SEM_REQUESTS" }, +{ 104 , "ERROR_INVALID_AT_INTERRUPT_TIME" }, +{ 105 , "ERROR_SEM_OWNER_DIED" }, +{ 106 , "ERROR_SEM_USER_LIMIT" }, +{ 107 , "ERROR_DISK_CHANGE" }, +{ 108 , "ERROR_DRIVE_LOCKED" }, +{ 109 , "ERROR_BROKEN_PIPE" }, +{ 110 , "ERROR_OPEN_FAILED" }, +{ 111 , "ERROR_BUFFER_OVERFLOW" }, +{ 112 , "ERROR_DISK_FULL" }, +{ 113 , "ERROR_NO_MORE_SEARCH_HANDLES" }, +{ 114 , "ERROR_INVALID_TARGET_HANDLE" }, +{ 117 , "ERROR_INVALID_CATEGORY" }, +{ 118 , "ERROR_INVALID_VERIFY_SWITCH" }, +{ 119 , "ERROR_BAD_DRIVER_LEVEL" }, +{ 120 , "ERROR_CALL_NOT_IMPLEMENTED" }, +{ 121 , "ERROR_SEM_TIMEOUT" }, +{ 122 , "ERROR_INSUFFICIENT_BUFFER" }, +{ 123 , "ERROR_INVALID_NAME" }, +{ 124 , "ERROR_INVALID_LEVEL" }, +{ 125 , "ERROR_NO_VOLUME_LABEL" }, +{ 126 , "ERROR_MOD_NOT_FOUND" }, +{ 127 , "ERROR_PROC_NOT_FOUND" }, +{ 128 , "ERROR_WAIT_NO_CHILDREN" }, +{ 129 , "ERROR_CHILD_NOT_COMPLETE" }, +{ 130 , "ERROR_DIRECT_ACCESS_HANDLE" }, +{ 131 , "ERROR_NEGATIVE_SEEK" }, +{ 132 , "ERROR_SEEK_ON_DEVICE" }, +{ 133 , "ERROR_IS_JOIN_TARGET" }, +{ 134 , "ERROR_IS_JOINED" }, +{ 135 , "ERROR_IS_SUBSTED" }, +{ 136 , "ERROR_NOT_JOINED" }, +{ 137 , "ERROR_NOT_SUBSTED" }, +{ 138 , "ERROR_JOIN_TO_JOIN" }, +{ 139 , "ERROR_SUBST_TO_SUBST" }, +{ 140 , "ERROR_JOIN_TO_SUBST" }, +{ 141 , "ERROR_SUBST_TO_JOIN" }, +{ 142 , "ERROR_BUSY_DRIVE" }, +{ 143 , "ERROR_SAME_DRIVE" }, +{ 144 , "ERROR_DIR_NOT_ROOT" }, +{ 145 , "ERROR_DIR_NOT_EMPTY" }, +{ 146 , "ERROR_IS_SUBST_PATH" }, +{ 147 , "ERROR_IS_JOIN_PATH" }, +{ 148 , "ERROR_PATH_BUSY" }, +{ 149 , "ERROR_IS_SUBST_TARGET" }, +{ 150 , "ERROR_SYSTEM_TRACE" }, +{ 151 , "ERROR_INVALID_EVENT_COUNT" }, +{ 152 , "ERROR_TOO_MANY_MUXWAITERS" }, +{ 153 , "ERROR_INVALID_LIST_FORMAT" }, +{ 154 , "ERROR_LABEL_TOO_LONG" }, +{ 155 , "ERROR_TOO_MANY_TCBS" }, +{ 156 , "ERROR_SIGNAL_REFUSED" }, +{ 157 , "ERROR_DISCARDED" }, +{ 158 , "ERROR_NOT_LOCKED" }, +{ 159 , "ERROR_BAD_THREADID_ADDR" }, +{ 160 , "ERROR_BAD_ARGUMENTS" }, +{ 161 , "ERROR_BAD_PATHNAME" }, +{ 162 , "ERROR_SIGNAL_PENDING" }, +{ 164 , "ERROR_MAX_THRDS_REACHED" }, +{ 167 , "ERROR_LOCK_FAILED" }, +{ 170 , "ERROR_BUSY" }, +{ 173 , "ERROR_CANCEL_VIOLATION" }, +{ 174 , "ERROR_ATOMIC_LOCKS_NOT_SUPPORTED" }, +{ 180 , "ERROR_INVALID_SEGMENT_NUMBER" }, +{ 182 , "ERROR_INVALID_ORDINAL" }, +{ 183 , "ERROR_ALREADY_EXISTS" }, +{ 186 , "ERROR_INVALID_FLAG_NUMBER" }, +{ 187 , "ERROR_SEM_NOT_FOUND" }, +{ 188 , "ERROR_INVALID_STARTING_CODESEG" }, +{ 189 , "ERROR_INVALID_STACKSEG" }, +{ 190 , "ERROR_INVALID_MODULETYPE" }, +{ 191 , "ERROR_INVALID_EXE_SIGNATURE" }, +{ 192 , "ERROR_EXE_MARKED_INVALID" }, +{ 193 , "ERROR_BAD_EXE_FORMAT" }, +{ 194 , "ERROR_ITERATED_DATA_EXCEEDS_64k" }, +{ 195 , "ERROR_INVALID_MINALLOCSIZE" }, +{ 196 , "ERROR_DYNLINK_FROM_INVALID_RING" }, +{ 197 , "ERROR_IOPL_NOT_ENABLED" }, +{ 198 , "ERROR_INVALID_SEGDPL" }, +{ 199 , "ERROR_AUTODATASEG_EXCEEDS_64k" }, +{ 200 , "ERROR_RING2SEG_MUST_BE_MOVABLE" }, +{ 201 , "ERROR_RELOC_CHAIN_XEEDS_SEGLIM" }, +{ 202 , "ERROR_INFLOOP_IN_RELOC_CHAIN" }, +{ 203 , "ERROR_ENVVAR_NOT_FOUND" }, +{ 205 , "ERROR_NO_SIGNAL_SENT" }, +{ 206 , "ERROR_FILENAME_EXCED_RANGE" }, +{ 207 , "ERROR_RING2_STACK_IN_USE" }, +{ 208 , "ERROR_META_EXPANSION_TOO_LONG" }, +{ 209 , "ERROR_INVALID_SIGNAL_NUMBER" }, +{ 210 , "ERROR_THREAD_1_INACTIVE" }, +{ 212 , "ERROR_LOCKED" }, +{ 214 , "ERROR_TOO_MANY_MODULES" }, +{ 215 , "ERROR_NESTING_NOT_ALLOWED" }, +{ 230 , "ERROR_BAD_PIPE" }, +{ 231 , "ERROR_PIPE_BUSY" }, +{ 232 , "ERROR_NO_DATA" }, +{ 233 , "ERROR_PIPE_NOT_CONNECTED" }, +{ 234 , "ERROR_MORE_DATA" }, +{ 240 , "ERROR_VC_DISCONNECTED" }, +{ 254 , "ERROR_INVALID_EA_NAME" }, +{ 255 , "ERROR_EA_LIST_INCONSISTENT" }, +{ 259 , "ERROR_NO_MORE_ITEMS" }, +{ 266 , "ERROR_CANNOT_COPY" }, +{ 267 , "ERROR_DIRECTORY" }, +{ 275 , "ERROR_EAS_DIDNT_FIT" }, +{ 276 , "ERROR_EA_FILE_CORRUPT" }, +{ 277 , "ERROR_EA_TABLE_FULL" }, +{ 278 , "ERROR_INVALID_EA_HANDLE" }, +{ 282 , "ERROR_EAS_NOT_SUPPORTED" }, +{ 288 , "ERROR_NOT_OWNER" }, +{ 298 , "ERROR_TOO_MANY_POSTS" }, +{ 299 , "ERROR_PARTIAL_COPY" }, +{ 317 , "ERROR_MR_MID_NOT_FOUND" }, +{ 487 , "ERROR_INVALID_ADDRESS" }, +{ 534 , "ERROR_ARITHMETIC_OVERFLOW" }, +{ 535 , "ERROR_PIPE_CONNECTED" }, +{ 536 , "ERROR_PIPE_LISTENING" }, +{ 994 , "ERROR_EA_ACCESS_DENIED" }, +{ 995 , "ERROR_OPERATION_ABORTED" }, +{ 996 , "ERROR_IO_INCOMPLETE" }, +{ 997 , "ERROR_IO_PENDING" }, +{ 998 , "ERROR_NOACCESS" }, +{ 999 , "ERROR_SWAPERROR" }, +{ 1001 , "ERROR_STACK_OVERFLOW" }, +{ 1002 , "ERROR_INVALID_MESSAGE" }, +{ 1003 , "ERROR_CAN_NOT_COMPLETE" }, +{ 1004 , "ERROR_INVALID_FLAGS" }, +{ 1005 , "ERROR_UNRECOGNIZED_VOLUME" }, +{ 1006 , "ERROR_FILE_INVALID" }, +{ 1007 , "ERROR_FULLSCREEN_MODE" }, +{ 1008 , "ERROR_NO_TOKEN" }, +{ 1009 , "ERROR_BADDB" }, +{ 1010 , "ERROR_BADKEY" }, +{ 1011 , "ERROR_CANTOPEN" }, +{ 1012 , "ERROR_CANTREAD" }, +{ 1013 , "ERROR_CANTWRITE" }, +{ 1014 , "ERROR_REGISTRY_RECOVERED" }, +{ 1015 , "ERROR_REGISTRY_CORRUPT" }, +{ 1016 , "ERROR_REGISTRY_IO_FAILED" }, +{ 1017 , "ERROR_NOT_REGISTRY_FILE" }, +{ 1018 , "ERROR_KEY_DELETED" }, +{ 1019 , "ERROR_NO_LOG_SPACE" }, +{ 1020 , "ERROR_KEY_HAS_CHILDREN" }, +{ 1021 , "ERROR_CHILD_MUST_BE_VOLATILE" }, +{ 1022 , "ERROR_NOTIFY_ENUM_DIR" }, +{ 1051 , "ERROR_DEPENDENT_SERVICES_RUNNING" }, +{ 1052 , "ERROR_INVALID_SERVICE_CONTROL" }, +{ 1053 , "ERROR_SERVICE_REQUEST_TIMEOUT" }, +{ 1054 , "ERROR_SERVICE_NO_THREAD" }, +{ 1055 , "ERROR_SERVICE_DATABASE_LOCKED" }, +{ 1056 , "ERROR_SERVICE_ALREADY_RUNNING" }, +{ 1057 , "ERROR_INVALID_SERVICE_ACCOUNT" }, +{ 1058 , "ERROR_SERVICE_DISABLED" }, +{ 1059 , "ERROR_CIRCULAR_DEPENDENCY" }, +{ 1060 , "ERROR_SERVICE_DOES_NOT_EXIST" }, +{ 1061 , "ERROR_SERVICE_CANNOT_ACCEPT_CTRL" }, +{ 1062 , "ERROR_SERVICE_NOT_ACTIVE" }, +{ 1063 , "ERROR_FAILED_SERVICE_CONTROLLER_CONNECT" }, +{ 1064 , "ERROR_EXCEPTION_IN_SERVICE" }, +{ 1065 , "ERROR_DATABASE_DOES_NOT_EXIST" }, +{ 1066 , "ERROR_SERVICE_SPECIFIC_ERROR" }, +{ 1067 , "ERROR_PROCESS_ABORTED" }, +{ 1068 , "ERROR_SERVICE_DEPENDENCY_FAIL" }, +{ 1069 , "ERROR_SERVICE_LOGON_FAILED" }, +{ 1070 , "ERROR_SERVICE_START_HANG" }, +{ 1071 , "ERROR_INVALID_SERVICE_LOCK" }, +{ 1072 , "ERROR_SERVICE_MARKED_FOR_DELETE" }, +{ 1073 , "ERROR_SERVICE_EXISTS" }, +{ 1074 , "ERROR_ALREADY_RUNNING_LKG" }, +{ 1075 , "ERROR_SERVICE_DEPENDENCY_DELETED" }, +{ 1076 , "ERROR_BOOT_ALREADY_ACCEPTED" }, +{ 1077 , "ERROR_SERVICE_NEVER_STARTED" }, +{ 1078 , "ERROR_DUPLICATE_SERVICE_NAME" }, +{ 1100 , "ERROR_END_OF_MEDIA" }, +{ 1101 , "ERROR_FILEMARK_DETECTED" }, +{ 1102 , "ERROR_BEGINNING_OF_MEDIA" }, +{ 1103 , "ERROR_SETMARK_DETECTED" }, +{ 1104 , "ERROR_NO_DATA_DETECTED" }, +{ 1105 , "ERROR_PARTITION_FAILURE" }, +{ 1106 , "ERROR_INVALID_BLOCK_LENGTH" }, +{ 1107 , "ERROR_DEVICE_NOT_PARTITIONED" }, +{ 1108 , "ERROR_UNABLE_TO_LOCK_MEDIA" }, +{ 1109 , "ERROR_UNABLE_TO_UNLOAD_MEDIA" }, +{ 1110 , "ERROR_MEDIA_CHANGED" }, +{ 1111 , "ERROR_BUS_RESET" }, +{ 1112 , "ERROR_NO_MEDIA_IN_DRIVE" }, +{ 1113 , "ERROR_NO_UNICODE_TRANSLATION" }, +{ 1114 , "ERROR_DLL_INIT_FAILED" }, +{ 1115 , "ERROR_SHUTDOWN_IN_PROGRESS" }, +{ 1116 , "ERROR_NO_SHUTDOWN_IN_PROGRESS" }, +{ 1117 , "ERROR_IO_DEVICE" }, +{ 1118 , "ERROR_SERIAL_NO_DEVICE" }, +{ 1119 , "ERROR_IRQ_BUSY" }, +{ 1120 , "ERROR_MORE_WRITES" }, +{ 1121 , "ERROR_COUNTER_TIMEOUT" }, +{ 1122 , "ERROR_FLOPPY_ID_MARK_NOT_FOUND" }, +{ 1123 , "ERROR_FLOPPY_WRONG_CYLINDER" }, +{ 1124 , "ERROR_FLOPPY_UNKNOWN_ERROR" }, +{ 1125 , "ERROR_FLOPPY_BAD_REGISTERS" }, +{ 1126 , "ERROR_DISK_RECALIBRATE_FAILED" }, +{ 1127 , "ERROR_DISK_OPERATION_FAILED" }, +{ 1128 , "ERROR_DISK_RESET_FAILED" }, +{ 1129 , "ERROR_EOM_OVERFLOW" }, +{ 1130 , "ERROR_NOT_ENOUGH_SERVER_MEMORY" }, +{ 1131 , "ERROR_POSSIBLE_DEADLOCK" }, +{ 1132 , "ERROR_MAPPED_ALIGNMENT" }, +{ 1140 , "ERROR_SET_POWER_STATE_VETOED" }, +{ 1141 , "ERROR_SET_POWER_STATE_FAILED" }, +{ 1150 , "ERROR_OLD_WIN_VERSION" }, +{ 1151 , "ERROR_APP_WRONG_OS" }, +{ 1152 , "ERROR_SINGLE_INSTANCE_APP" }, +{ 1153 , "ERROR_RMODE_APP" }, +{ 1154 , "ERROR_INVALID_DLL" }, +{ 1155 , "ERROR_NO_ASSOCIATION" }, +{ 1156 , "ERROR_DDE_FAIL" }, +{ 1157 , "ERROR_DLL_NOT_FOUND" }, +{ 2202 , "ERROR_BAD_USERNAME" }, +{ 2250 , "ERROR_NOT_CONNECTED" }, +{ 2401 , "ERROR_OPEN_FILES" }, +{ 2402 , "ERROR_ACTIVE_CONNECTIONS" }, +{ 2404 , "ERROR_DEVICE_IN_USE" }, +{ 1200 , "ERROR_BAD_DEVICE" }, +{ 1201 , "ERROR_CONNECTION_UNAVAIL" }, +{ 1202 , "ERROR_DEVICE_ALREADY_REMEMBERED" }, +{ 1203 , "ERROR_NO_NET_OR_BAD_PATH" }, +{ 1204 , "ERROR_BAD_PROVIDER" }, +{ 1205 , "ERROR_CANNOT_OPEN_PROFILE" }, +{ 1206 , "ERROR_BAD_PROFILE" }, +{ 1207 , "ERROR_NOT_CONTAINER" }, +{ 1208 , "ERROR_EXTENDED_ERROR" }, +{ 1209 , "ERROR_INVALID_GROUPNAME" }, +{ 1210 , "ERROR_INVALID_COMPUTERNAME" }, +{ 1211 , "ERROR_INVALID_EVENTNAME" }, +{ 1212 , "ERROR_INVALID_DOMAINNAME" }, +{ 1213 , "ERROR_INVALID_SERVICENAME" }, +{ 1214 , "ERROR_INVALID_NETNAME" }, +{ 1215 , "ERROR_INVALID_SHARENAME" }, +{ 1216 , "ERROR_INVALID_PASSWORDNAME" }, +{ 1217 , "ERROR_INVALID_MESSAGENAME" }, +{ 1218 , "ERROR_INVALID_MESSAGEDEST" }, +{ 1219 , "ERROR_SESSION_CREDENTIAL_CONFLICT" }, +{ 1220 , "ERROR_REMOTE_SESSION_LIMIT_EXCEEDED" }, +{ 1221 , "ERROR_DUP_DOMAINNAME" }, +{ 1222 , "ERROR_NO_NETWORK" }, +{ 1223 , "ERROR_CANCELLED" }, +{ 1224 , "ERROR_USER_MAPPED_FILE" }, +{ 1225 , "ERROR_CONNECTION_REFUSED" }, +{ 1226 , "ERROR_GRACEFUL_DISCONNECT" }, +{ 1227 , "ERROR_ADDRESS_ALREADY_ASSOCIATED" }, +{ 1228 , "ERROR_ADDRESS_NOT_ASSOCIATED" }, +{ 1229 , "ERROR_CONNECTION_INVALID" }, +{ 1230 , "ERROR_CONNECTION_ACTIVE" }, +{ 1231 , "ERROR_NETWORK_UNREACHABLE" }, +{ 1232 , "ERROR_HOST_UNREACHABLE" }, +{ 1233 , "ERROR_PROTOCOL_UNREACHABLE" }, +{ 1234 , "ERROR_PORT_UNREACHABLE" }, +{ 1235 , "ERROR_REQUEST_ABORTED" }, +{ 1236 , "ERROR_CONNECTION_ABORTED" }, +{ 1237 , "ERROR_RETRY" }, +{ 1238 , "ERROR_CONNECTION_COUNT_LIMIT" }, +{ 1239 , "ERROR_LOGIN_TIME_RESTRICTION" }, +{ 1240 , "ERROR_LOGIN_WKSTA_RESTRICTION" }, +{ 1241 , "ERROR_INCORRECT_ADDRESS" }, +{ 1242 , "ERROR_ALREADY_REGISTERED" }, +{ 1243 , "ERROR_SERVICE_NOT_FOUND" }, +{ 1244 , "ERROR_NOT_AUTHENTICATED" }, +{ 1245 , "ERROR_NOT_LOGGED_ON" }, +{ 1246 , "ERROR_CONTINUE" }, +{ 1247 , "ERROR_ALREADY_INITIALIZED" }, +{ 1248 , "ERROR_NO_MORE_DEVICES" }, +{ 1300 , "ERROR_NOT_ALL_ASSIGNED" }, +{ 1301 , "ERROR_SOME_NOT_MAPPED" }, +{ 1302 , "ERROR_NO_QUOTAS_FOR_ACCOUNT" }, +{ 1303 , "ERROR_LOCAL_USER_SESSION_KEY" }, +{ 1304 , "ERROR_NULL_LM_PASSWORD" }, +{ 1305 , "ERROR_UNKNOWN_REVISION" }, +{ 1306 , "ERROR_REVISION_MISMATCH" }, +{ 1307 , "ERROR_INVALID_OWNER" }, +{ 1308 , "ERROR_INVALID_PRIMARY_GROUP" }, +{ 1309 , "ERROR_NO_IMPERSONATION_TOKEN" }, +{ 1310 , "ERROR_CANT_DISABLE_MANDATORY" }, +{ 1311 , "ERROR_NO_LOGON_SERVERS" }, +{ 1312 , "ERROR_NO_SUCH_LOGON_SESSION" }, +{ 1313 , "ERROR_NO_SUCH_PRIVILEGE" }, +{ 1314 , "ERROR_PRIVILEGE_NOT_HELD" }, +{ 1315 , "ERROR_INVALID_ACCOUNT_NAME" }, +{ 1316 , "ERROR_USER_EXISTS" }, +{ 1317 , "ERROR_NO_SUCH_USER" }, +{ 1318 , "ERROR_GROUP_EXISTS" }, +{ 1319 , "ERROR_NO_SUCH_GROUP" }, +{ 1320 , "ERROR_MEMBER_IN_GROUP" }, +{ 1321 , "ERROR_MEMBER_NOT_IN_GROUP" }, +{ 1322 , "ERROR_LAST_ADMIN" }, +{ 1323 , "ERROR_WRONG_PASSWORD" }, +{ 1324 , "ERROR_ILL_FORMED_PASSWORD" }, +{ 1325 , "ERROR_PASSWORD_RESTRICTION" }, +{ 1326 , "ERROR_LOGON_FAILURE" }, +{ 1327 , "ERROR_ACCOUNT_RESTRICTION" }, +{ 1328 , "ERROR_INVALID_LOGON_HOURS" }, +{ 1329 , "ERROR_INVALID_WORKSTATION" }, +{ 1330 , "ERROR_PASSWORD_EXPIRED" }, +{ 1331 , "ERROR_ACCOUNT_DISABLED" }, +{ 1332 , "ERROR_NONE_MAPPED" }, +{ 1333 , "ERROR_TOO_MANY_LUIDS_REQUESTED" }, +{ 1334 , "ERROR_LUIDS_EXHAUSTED" }, +{ 1335 , "ERROR_INVALID_SUB_AUTHORITY" }, +{ 1336 , "ERROR_INVALID_ACL" }, +{ 1337 , "ERROR_INVALID_SID" }, +{ 1338 , "ERROR_INVALID_SECURITY_DESCR" }, +{ 1340 , "ERROR_BAD_INHERITANCE_ACL" }, +{ 1341 , "ERROR_SERVER_DISABLED" }, +{ 1342 , "ERROR_SERVER_NOT_DISABLED" }, +{ 1343 , "ERROR_INVALID_ID_AUTHORITY" }, +{ 1344 , "ERROR_ALLOTTED_SPACE_EXCEEDED" }, +{ 1345 , "ERROR_INVALID_GROUP_ATTRIBUTES" }, +{ 1346 , "ERROR_BAD_IMPERSONATION_LEVEL" }, +{ 1347 , "ERROR_CANT_OPEN_ANONYMOUS" }, +{ 1348 , "ERROR_BAD_VALIDATION_CLASS" }, +{ 1349 , "ERROR_BAD_TOKEN_TYPE" }, +{ 1350 , "ERROR_NO_SECURITY_ON_OBJECT" }, +{ 1351 , "ERROR_CANT_ACCESS_DOMAIN_INFO" }, +{ 1352 , "ERROR_INVALID_SERVER_STATE" }, +{ 1353 , "ERROR_INVALID_DOMAIN_STATE" }, +{ 1354 , "ERROR_INVALID_DOMAIN_ROLE" }, +{ 1355 , "ERROR_NO_SUCH_DOMAIN" }, +{ 1356 , "ERROR_DOMAIN_EXISTS" }, +{ 1357 , "ERROR_DOMAIN_LIMIT_EXCEEDED" }, +{ 1358 , "ERROR_INTERNAL_DB_CORRUPTION" }, +{ 1359 , "ERROR_INTERNAL_ERROR" }, +{ 1360 , "ERROR_GENERIC_NOT_MAPPED" }, +{ 1361 , "ERROR_BAD_DESCRIPTOR_FORMAT" }, +{ 1362 , "ERROR_NOT_LOGON_PROCESS" }, +{ 1363 , "ERROR_LOGON_SESSION_EXISTS" }, +{ 1364 , "ERROR_NO_SUCH_PACKAGE" }, +{ 1365 , "ERROR_BAD_LOGON_SESSION_STATE" }, +{ 1366 , "ERROR_LOGON_SESSION_COLLISION" }, +{ 1367 , "ERROR_INVALID_LOGON_TYPE" }, +{ 1368 , "ERROR_CANNOT_IMPERSONATE" }, +{ 1369 , "ERROR_RXACT_INVALID_STATE" }, +{ 1370 , "ERROR_RXACT_COMMIT_FAILURE" }, +{ 1371 , "ERROR_SPECIAL_ACCOUNT" }, +{ 1372 , "ERROR_SPECIAL_GROUP" }, +{ 1373 , "ERROR_SPECIAL_USER" }, +{ 1374 , "ERROR_MEMBERS_PRIMARY_GROUP" }, +{ 1375 , "ERROR_TOKEN_ALREADY_IN_USE" }, +{ 1376 , "ERROR_NO_SUCH_ALIAS" }, +{ 1377 , "ERROR_MEMBER_NOT_IN_ALIAS" }, +{ 1378 , "ERROR_MEMBER_IN_ALIAS" }, +{ 1379 , "ERROR_ALIAS_EXISTS" }, +{ 1380 , "ERROR_LOGON_NOT_GRANTED" }, +{ 1381 , "ERROR_TOO_MANY_SECRETS" }, +{ 1382 , "ERROR_SECRET_TOO_LONG" }, +{ 1383 , "ERROR_INTERNAL_DB_ERROR" }, +{ 1384 , "ERROR_TOO_MANY_CONTEXT_IDS" }, +{ 1385 , "ERROR_LOGON_TYPE_NOT_GRANTED" }, +{ 1386 , "ERROR_NT_CROSS_ENCRYPTION_REQUIRED" }, +{ 1387 , "ERROR_NO_SUCH_MEMBER" }, +{ 1388 , "ERROR_INVALID_MEMBER" }, +{ 1389 , "ERROR_TOO_MANY_SIDS" }, +{ 1390 , "ERROR_LM_CROSS_ENCRYPTION_REQUIRED" }, +{ 1391 , "ERROR_NO_INHERITANCE" }, +{ 1392 , "ERROR_FILE_CORRUPT" }, +{ 1393 , "ERROR_DISK_CORRUPT" }, +{ 1394 , "ERROR_NO_USER_SESSION_KEY" }, +{ 1395 , "ERROR_LICENSE_QUOTA_EXCEEDED" }, +{ 1400 , "ERROR_INVALID_WINDOW_HANDLE" }, +{ 1401 , "ERROR_INVALID_MENU_HANDLE" }, +{ 1402 , "ERROR_INVALID_CURSOR_HANDLE" }, +{ 1403 , "ERROR_INVALID_ACCEL_HANDLE" }, +{ 1404 , "ERROR_INVALID_HOOK_HANDLE" }, +{ 1405 , "ERROR_INVALID_DWP_HANDLE" }, +{ 1406 , "ERROR_TLW_WITH_WSCHILD" }, +{ 1407 , "ERROR_CANNOT_FIND_WND_CLASS" }, +{ 1408 , "ERROR_WINDOW_OF_OTHER_THREAD" }, +{ 1409 , "ERROR_HOTKEY_ALREADY_REGISTERED" }, +{ 1410 , "ERROR_CLASS_ALREADY_EXISTS" }, +{ 1411 , "ERROR_CLASS_DOES_NOT_EXIST" }, +{ 1412 , "ERROR_CLASS_HAS_WINDOWS" }, +{ 1413 , "ERROR_INVALID_INDEX" }, +{ 1414 , "ERROR_INVALID_ICON_HANDLE" }, +{ 1415 , "ERROR_PRIVATE_DIALOG_INDEX" }, +{ 1416 , "ERROR_LISTBOX_ID_NOT_FOUND" }, +{ 1417 , "ERROR_NO_WILDCARD_CHARACTERS" }, +{ 1418 , "ERROR_CLIPBOARD_NOT_OPEN" }, +{ 1419 , "ERROR_HOTKEY_NOT_REGISTERED" }, +{ 1420 , "ERROR_WINDOW_NOT_DIALOG" }, +{ 1421 , "ERROR_CONTROL_ID_NOT_FOUND" }, +{ 1422 , "ERROR_INVALID_COMBOBOX_MESSAGE" }, +{ 1423 , "ERROR_WINDOW_NOT_COMBOBOX" }, +{ 1424 , "ERROR_INVALID_EDIT_HEIGHT" }, +{ 1425 , "ERROR_DC_NOT_FOUND" }, +{ 1426 , "ERROR_INVALID_HOOK_FILTER" }, +{ 1427 , "ERROR_INVALID_FILTER_PROC" }, +{ 1428 , "ERROR_HOOK_NEEDS_HMOD" }, +{ 1429 , "ERROR_GLOBAL_ONLY_HOOK" }, +{ 1430 , "ERROR_JOURNAL_HOOK_SET" }, +{ 1431 , "ERROR_HOOK_NOT_INSTALLED" }, +{ 1432 , "ERROR_INVALID_LB_MESSAGE" }, +{ 1433 , "ERROR_SETCOUNT_ON_BAD_LB" }, +{ 1434 , "ERROR_LB_WITHOUT_TABSTOPS" }, +{ 1435 , "ERROR_DESTROY_OBJECT_OF_OTHER_THREAD" }, +{ 1436 , "ERROR_CHILD_WINDOW_MENU" }, +{ 1437 , "ERROR_NO_SYSTEM_MENU" }, +{ 1438 , "ERROR_INVALID_MSGBOX_STYLE" }, +{ 1439 , "ERROR_INVALID_SPI_VALUE" }, +{ 1440 , "ERROR_SCREEN_ALREADY_LOCKED" }, +{ 1441 , "ERROR_HWNDS_HAVE_DIFF_PARENT" }, +{ 1442 , "ERROR_NOT_CHILD_WINDOW" }, +{ 1443 , "ERROR_INVALID_GW_COMMAND" }, +{ 1444 , "ERROR_INVALID_THREAD_ID" }, +{ 1445 , "ERROR_NON_MDICHILD_WINDOW" }, +{ 1446 , "ERROR_POPUP_ALREADY_ACTIVE" }, +{ 1447 , "ERROR_NO_SCROLLBARS" }, +{ 1448 , "ERROR_INVALID_SCROLLBAR_RANGE" }, +{ 1449 , "ERROR_INVALID_SHOWWIN_COMMAND" }, +{ 1450 , "ERROR_NO_SYSTEM_RESOURCES" }, +{ 1451 , "ERROR_NONPAGED_SYSTEM_RESOURCES" }, +{ 1452 , "ERROR_PAGED_SYSTEM_RESOURCES" }, +{ 1453 , "ERROR_WORKING_SET_QUOTA" }, +{ 1454 , "ERROR_PAGEFILE_QUOTA" }, +{ 1455 , "ERROR_COMMITMENT_LIMIT" }, +{ 1456 , "ERROR_MENU_ITEM_NOT_FOUND" }, +{ 1500 , "ERROR_EVENTLOG_FILE_CORRUPT" }, +{ 1501 , "ERROR_EVENTLOG_CANT_START" }, +{ 1502 , "ERROR_LOG_FILE_FULL" }, +{ 1503 , "ERROR_EVENTLOG_FILE_CHANGED" }, +{ 1700 , "RPC_S_INVALID_STRING_BINDING" }, +{ 1701 , "RPC_S_WRONG_KIND_OF_BINDING" }, +{ 1702 , "RPC_S_INVALID_BINDING" }, +{ 1703 , "RPC_S_PROTSEQ_NOT_SUPPORTED" }, +{ 1704 , "RPC_S_INVALID_RPC_PROTSEQ" }, +{ 1705 , "RPC_S_INVALID_STRING_UUID" }, +{ 1706 , "RPC_S_INVALID_ENDPOINT_FORMAT" }, +{ 1707 , "RPC_S_INVALID_NET_ADDR" }, +{ 1708 , "RPC_S_NO_ENDPOINT_FOUND" }, +{ 1709 , "RPC_S_INVALID_TIMEOUT" }, +{ 1710 , "RPC_S_OBJECT_NOT_FOUND" }, +{ 1711 , "RPC_S_ALREADY_REGISTERED" }, +{ 1712 , "RPC_S_TYPE_ALREADY_REGISTERED" }, +{ 1713 , "RPC_S_ALREADY_LISTENING" }, +{ 1714 , "RPC_S_NO_PROTSEQS_REGISTERED" }, +{ 1715 , "RPC_S_NOT_LISTENING" }, +{ 1716 , "RPC_S_UNKNOWN_MGR_TYPE" }, +{ 1717 , "RPC_S_UNKNOWN_IF" }, +{ 1718 , "RPC_S_NO_BINDINGS" }, +{ 1719 , "RPC_S_NO_PROTSEQS" }, +{ 1720 , "RPC_S_CANT_CREATE_ENDPOINT" }, +{ 1721 , "RPC_S_OUT_OF_RESOURCES" }, +{ 1722 , "RPC_S_SERVER_UNAVAILABLE" }, +{ 1723 , "RPC_S_SERVER_TOO_BUSY" }, +{ 1724 , "RPC_S_INVALID_NETWORK_OPTIONS" }, +{ 1725 , "RPC_S_NO_CALL_ACTIVE" }, +{ 1726 , "RPC_S_CALL_FAILED" }, +{ 1727 , "RPC_S_CALL_FAILED_DNE" }, +{ 1728 , "RPC_S_PROTOCOL_ERROR" }, +{ 1730 , "RPC_S_UNSUPPORTED_TRANS_SYN" }, +{ 1732 , "RPC_S_UNSUPPORTED_TYPE" }, +{ 1733 , "RPC_S_INVALID_TAG" }, +{ 1734 , "RPC_S_INVALID_BOUND" }, +{ 1735 , "RPC_S_NO_ENTRY_NAME" }, +{ 1736 , "RPC_S_INVALID_NAME_SYNTAX" }, +{ 1737 , "RPC_S_UNSUPPORTED_NAME_SYNTAX" }, +{ 1739 , "RPC_S_UUID_NO_ADDRESS" }, +{ 1740 , "RPC_S_DUPLICATE_ENDPOINT" }, +{ 1741 , "RPC_S_UNKNOWN_AUTHN_TYPE" }, +{ 1742 , "RPC_S_MAX_CALLS_TOO_SMALL" }, +{ 1743 , "RPC_S_STRING_TOO_LONG" }, +{ 1744 , "RPC_S_PROTSEQ_NOT_FOUND" }, +{ 1745 , "RPC_S_PROCNUM_OUT_OF_RANGE" }, +{ 1746 , "RPC_S_BINDING_HAS_NO_AUTH" }, +{ 1747 , "RPC_S_UNKNOWN_AUTHN_SERVICE" }, +{ 1748 , "RPC_S_UNKNOWN_AUTHN_LEVEL" }, +{ 1749 , "RPC_S_INVALID_AUTH_IDENTITY" }, +{ 1750 , "RPC_S_UNKNOWN_AUTHZ_SERVICE" }, +{ 1751 , "EPT_S_INVALID_ENTRY" }, +{ 1752 , "EPT_S_CANT_PERFORM_OP" }, +{ 1753 , "EPT_S_NOT_REGISTERED" }, +{ 1754 , "RPC_S_NOTHING_TO_EXPORT" }, +{ 1755 , "RPC_S_INCOMPLETE_NAME" }, +{ 1756 , "RPC_S_INVALID_VERS_OPTION" }, +{ 1757 , "RPC_S_NO_MORE_MEMBERS" }, +{ 1758 , "RPC_S_NOT_ALL_OBJS_UNEXPORTED" }, +{ 1759 , "RPC_S_INTERFACE_NOT_FOUND" }, +{ 1760 , "RPC_S_ENTRY_ALREADY_EXISTS" }, +{ 1761 , "RPC_S_ENTRY_NOT_FOUND" }, +{ 1762 , "RPC_S_NAME_SERVICE_UNAVAILABLE" }, +{ 1763 , "RPC_S_INVALID_NAF_ID" }, +{ 1764 , "RPC_S_CANNOT_SUPPORT" }, +{ 1765 , "RPC_S_NO_CONTEXT_AVAILABLE" }, +{ 1766 , "RPC_S_INTERNAL_ERROR" }, +{ 1767 , "RPC_S_ZERO_DIVIDE" }, +{ 1768 , "RPC_S_ADDRESS_ERROR" }, +{ 1769 , "RPC_S_FP_DIV_ZERO" }, +{ 1770 , "RPC_S_FP_UNDERFLOW" }, +{ 1771 , "RPC_S_FP_OVERFLOW" }, +{ 1772 , "RPC_X_NO_MORE_ENTRIES" }, +{ 1773 , "RPC_X_SS_CHAR_TRANS_OPEN_FAIL" }, +{ 1774 , "RPC_X_SS_CHAR_TRANS_SHORT_FILE" }, +{ 1775 , "RPC_X_SS_IN_NULL_CONTEXT" }, +{ 1777 , "RPC_X_SS_CONTEXT_DAMAGED" }, +{ 1778 , "RPC_X_SS_HANDLES_MISMATCH" }, +{ 1779 , "RPC_X_SS_CANNOT_GET_CALL_HANDLE" }, +{ 1780 , "RPC_X_NULL_REF_POINTER" }, +{ 1781 , "RPC_X_ENUM_VALUE_OUT_OF_RANGE" }, +{ 1782 , "RPC_X_BYTE_COUNT_TOO_SMALL" }, +{ 1783 , "RPC_X_BAD_STUB_DATA" }, +{ 1784 , "ERROR_INVALID_USER_BUFFER" }, +{ 1785 , "ERROR_UNRECOGNIZED_MEDIA" }, +{ 1786 , "ERROR_NO_TRUST_LSA_SECRET" }, +{ 1787 , "ERROR_NO_TRUST_SAM_ACCOUNT" }, +{ 1788 , "ERROR_TRUSTED_DOMAIN_FAILURE" }, +{ 1789 , "ERROR_TRUSTED_RELATIONSHIP_FAILURE" }, +{ 1790 , "ERROR_TRUST_FAILURE" }, +{ 1791 , "RPC_S_CALL_IN_PROGRESS" }, +{ 1792 , "ERROR_NETLOGON_NOT_STARTED" }, +{ 1793 , "ERROR_ACCOUNT_EXPIRED" }, +{ 1794 , "ERROR_REDIRECTOR_HAS_OPEN_HANDLES" }, +{ 1795 , "ERROR_PRINTER_DRIVER_ALREADY_INSTALLED" }, +{ 1796 , "ERROR_UNKNOWN_PORT" }, +{ 1797 , "ERROR_UNKNOWN_PRINTER_DRIVER" }, +{ 1798 , "ERROR_UNKNOWN_PRINTPROCESSOR" }, +{ 1799 , "ERROR_INVALID_SEPARATOR_FILE" }, +{ 1800 , "ERROR_INVALID_PRIORITY" }, +{ 1801 , "ERROR_INVALID_PRINTER_NAME" }, +{ 1802 , "ERROR_PRINTER_ALREADY_EXISTS" }, +{ 1803 , "ERROR_INVALID_PRINTER_COMMAND" }, +{ 1804 , "ERROR_INVALID_DATATYPE" }, +{ 1805 , "ERROR_INVALID_ENVIRONMENT" }, +{ 1806 , "RPC_S_NO_MORE_BINDINGS" }, +{ 1807 , "ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT" }, +{ 1808 , "ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT" }, +{ 1809 , "ERROR_NOLOGON_SERVER_TRUST_ACCOUNT" }, +{ 1810 , "ERROR_DOMAIN_TRUST_INCONSISTENT" }, +{ 1811 , "ERROR_SERVER_HAS_OPEN_HANDLES" }, +{ 1812 , "ERROR_RESOURCE_DATA_NOT_FOUND" }, +{ 1813 , "ERROR_RESOURCE_TYPE_NOT_FOUND" }, +{ 1814 , "ERROR_RESOURCE_NAME_NOT_FOUND" }, +{ 1815 , "ERROR_RESOURCE_LANG_NOT_FOUND" }, +{ 1816 , "ERROR_NOT_ENOUGH_QUOTA" }, +{ 1817 , "RPC_S_NO_INTERFACES" }, +{ 1818 , "RPC_S_CALL_CANCELLED" }, +{ 1819 , "RPC_S_BINDING_INCOMPLETE" }, +{ 1820 , "RPC_S_COMM_FAILURE" }, +{ 1821 , "RPC_S_UNSUPPORTED_AUTHN_LEVEL" }, +{ 1822 , "RPC_S_NO_PRINC_NAME" }, +{ 1823 , "RPC_S_NOT_RPC_ERROR" }, +{ 1824 , "RPC_S_UUID_LOCAL_ONLY" }, +{ 1825 , "RPC_S_SEC_PKG_ERROR" }, +{ 1826 , "RPC_S_NOT_CANCELLED" }, +{ 1827 , "RPC_X_INVALID_ES_ACTION" }, +{ 1828 , "RPC_X_WRONG_ES_VERSION" }, +{ 1829 , "RPC_X_WRONG_STUB_VERSION" }, +{ 1898 , "RPC_S_GROUP_MEMBER_NOT_FOUND" }, +{ 1899 , "EPT_S_CANT_CREATE" }, +{ 1900 , "RPC_S_INVALID_OBJECT" }, +{ 1901 , "ERROR_INVALID_TIME" }, +{ 1902 , "ERROR_INVALID_FORM_NAME" }, +{ 1903 , "ERROR_INVALID_FORM_SIZE" }, +{ 1904 , "ERROR_ALREADY_WAITING" }, +{ 1905 , "ERROR_PRINTER_DELETED" }, +{ 1906 , "ERROR_INVALID_PRINTER_STATE" }, +{ 1907 , "ERROR_PASSWORD_MUST_CHANGE" }, +{ 1908 , "ERROR_DOMAIN_CONTROLLER_NOT_FOUND" }, +{ 1909 , "ERROR_ACCOUNT_LOCKED_OUT" }, +{ 6118 , "ERROR_NO_BROWSER_SERVERS_FOUND" }, +{ 2000 , "ERROR_INVALID_PIXEL_FORMAT" }, +{ 2001 , "ERROR_BAD_DRIVER" }, +{ 2002 , "ERROR_INVALID_WINDOW_STYLE" }, +{ 2003 , "ERROR_METAFILE_NOT_SUPPORTED" }, +{ 2004 , "ERROR_TRANSFORM_NOT_SUPPORTED" }, +{ 2005 , "ERROR_CLIPPING_NOT_SUPPORTED" }, +{ 3000 , "ERROR_UNKNOWN_PRINT_MONITOR" }, +{ 3001 , "ERROR_PRINTER_DRIVER_IN_USE" }, +{ 3002 , "ERROR_SPOOL_FILE_NOT_FOUND" }, +{ 3003 , "ERROR_SPL_NO_STARTDOC" }, +{ 3004 , "ERROR_SPL_NO_ADDJOB" }, +{ 3005 , "ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED" }, +{ 3006 , "ERROR_PRINT_MONITOR_ALREADY_INSTALLED" }, +{ 4000 , "ERROR_WINS_INTERNAL" }, +{ 4001 , "ERROR_CAN_NOT_DEL_LOCAL_WINS" }, +{ 4002 , "ERROR_STATIC_INIT" }, +{ 4003 , "ERROR_INC_BACKUP" }, +{ 4004 , "ERROR_FULL_BACKUP" }, +{ 4005 , "ERROR_REC_NON_EXISTENT" }, +{ 4006 , "ERROR_RPL_NOT_ALLOWED" }, +{ 10004 , "WSAEINTR" }, +{ 10009 , "WSAEBADF" }, +{ 10013 , "WSAEACCES" }, +{ 10014 , "WSAEFAULT" }, +{ 10022 , "WSAEINVAL" }, +{ 10024 , "WSAEMFILE" }, +{ 10035 , "WSAEWOULDBLOCK" }, +{ 10036 , "WSAEINPROGRESS" }, +{ 10037 , "WSAEALREADY" }, +{ 10038 , "WSAENOTSOCK" }, +{ 10039 , "WSAEDESTADDRREQ" }, +{ 10040 , "WSAEMSGSIZE" }, +{ 10041 , "WSAEPROTOTYPE" }, +{ 10042 , "WSAENOPROTOOPT" }, +{ 10043 , "WSAEPROTONOSUPPORT" }, +{ 10044 , "WSAESOCKTNOSUPPORT" }, +{ 10045 , "WSAEOPNOTSUPP" }, +{ 10046 , "WSAEPFNOSUPPORT" }, +{ 10047 , "WSAEAFNOSUPPORT" }, +{ 10048 , "WSAEADDRINUSE" }, +{ 10049 , "WSAEADDRNOTAVAIL" }, +{ 10050 , "WSAENETDOWN" }, +{ 10051 , "WSAENETUNREACH" }, +{ 10052 , "WSAENETRESET" }, +{ 10053 , "WSAECONNABORTED" }, +{ 10054 , "WSAECONNRESET" }, +{ 10055 , "WSAENOBUFS" }, +{ 10056 , "WSAEISCONN" }, +{ 10057 , "WSAENOTCONN" }, +{ 10058 , "WSAESHUTDOWN" }, +{ 10059 , "WSAETOOMANYREFS" }, +{ 10060 , "WSAETIMEDOUT" }, +{ 10061 , "WSAECONNREFUSED" }, +{ 10062 , "WSAELOOP" }, +{ 10063 , "WSAENAMETOOLONG" }, +{ 10064 , "WSAEHOSTDOWN" }, +{ 10065 , "WSAEHOSTUNREACH" }, +{ 10066 , "WSAENOTEMPTY" }, +{ 10067 , "WSAEPROCLIM" }, +{ 10068 , "WSAEUSERS" }, +{ 10069 , "WSAEDQUOT" }, +{ 10070 , "WSAESTALE" }, +{ 10071 , "WSAEREMOTE" }, +{ 10101 , "WSAEDISCON" }, +{ 10091 , "WSASYSNOTREADY" }, +{ 10092 , "WSAVERNOTSUPPORTED" }, +{ 10093 , "WSANOTINITIALISED" }, +{ 11001 , "WSAHOST_NOT_FOUND" }, +{ 11002 , "WSATRY_AGAIN" }, +{ 11003 , "WSANO_RECOVERY" }, +{ 11004 , "WSANO_DATA" }, +{ 0, NULL } +}; diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h new file mode 100644 index 00000000000..ceb6d06b133 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h @@ -0,0 +1,29 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +#ifndef __objndx_h +#define __objndx_h + +/* Define maximum length of object name strings */ +#define OBJNDXNAMLEN 16 + +/* Functions in objndx.c */ +extern void * objndx_create(int size, void (*freefunc)(void *)); +extern char * objndx_register(void * objndx, void * objptr, char * namebuf); +extern void * objndx_lookup(void * objndx, char * objname); +extern void * objndx_remove(void * objndx, char * objname); +extern void objndx_destroy(void * objndx); + +#endif /* __objndx_h */ diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h new file mode 100644 index 00000000000..4dc1629fcd0 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h @@ -0,0 +1,193 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * pblock.h: Header for Parameter Block handling functions + * + * + * A parameter block is a set of name=value pairs which are generally used + * as parameters, but can be anything. They are kept in a hash table for + * reasonable speed, but if you are doing any intensive modification or + * access of them you should probably make a local copy of each parameter + * while working. + * + * When creating a pblock, you specify the hash table size for that pblock. + * You should set this size larger if you know that many items will be in + * that pblock, and smaller if only a few will be used or if speed is not + * a concern. + * + * The hashing function is very simple right now, and only looks at the + * first character of name. + * + * Rob McCool + * + */ + +#ifndef PBLOCK_H +#define PBLOCK_H + +/* + * Requires that the macros MALLOC and STRDUP be set to "safe" versions that + * will exit if no memory is available. If not under MCC httpd, define + * them to be the real functions and play with fire, or make your own + * function. + */ + +#include "../netsite.h" + +#include <ctype.h> /* isspace */ +#include <stdio.h> /* sprintf */ +#include <string.h> /* strlen, strcmp */ + + +/* ------------------------------ Structures ------------------------------ */ + + +typedef struct { + char *name,*value; +} pb_param; + +struct pb_entry { + pb_param *param; + struct pb_entry *next; +}; + +typedef struct { + int hsize; + struct pb_entry **ht; +} pblock; + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * param_create creates a parameter with the given name and value. If name + * and value are non-NULL, they are copied and placed into the new pb_param + * struct. + */ + +pb_param *param_create(char *name, char *value); + +/* + * param_free frees a given parameter if it's non-NULL, and returns 1 if + * p was non-NULL, and 0 if p was NULL. + * + * Useful for error checking pblock_remove. + */ + +int param_free(pb_param *pp); + +/* + * pblock_create creates a new pblock with hash table size n. + * + * It returns the newly allocated pblock. + */ + +pblock *pblock_create(int n); + +/* + * pblock_free frees the given pblock and any entries inside it. + * + * If you want to save anything in a pblock, remove its entities with + * pblock_remove first and save the pointers you get. + */ + +void pblock_free(pblock *pb); + +/* + * pblock_find finds the entry with the given name in pblock pb. + * + * If it is successful, it returns the param block. If not, it returns NULL. + */ + +#define pblock_find(name, pb) (_pblock_fr(name,pb,0)) + +/* + * pblock_findval finds the entry with the given name in pblock pb, and + * returns its value, otherwise returns NULL. + */ + +char *pblock_findval(char *name, pblock *pb); + +/* + * pblock_remove behaves exactly like pblock_find, but removes the given + * entry from pb. + */ + +#define pblock_remove(name, pb) (_pblock_fr(name,pb,1)) + +/* + * pblock_nvinsert creates a new parameter with the given name and value + * and inserts it into pblock pb. The name and value in the parameter are + * also newly allocated. Returns the pb_param it allocated (in case you + * need it). + * + * pblock_nninsert inserts a numerical value. + */ + +pb_param *pblock_nvinsert(char *name, char *value, pblock *pb); +pb_param *pblock_nninsert(char *name, int value, pblock *pb); + +/* + * pblock_pinsert inserts a pb_param into a pblock. + */ + +void pblock_pinsert(pb_param *pp, pblock *pb); + +/* + * pblock_str2pblock scans the given string str for parameter pairs + * name=value, or name="value". Any \ must be followed by a literal + * character. If a string value is found, with no unescaped = signs, it + * will be added with the name 1, 2, 3, etc. depending on whether it was + * first, second, third, etc. in the stream (zero doesn't count). + * + * Returns the number of parameters added to the table, or -1 upon error. + */ + +int pblock_str2pblock(char *str, pblock *pb); + +/* + * pblock_pblock2str places all of the parameters in the given pblock + * into the given string (NULL if it needs creation). It will re-allocate + * more space for the string. Each parameter is separated by a space and of + * the form name="value" + */ + +char *pblock_pblock2str(pblock *pb, char *str); + +/* + * pblock_copy copies the entries in the given source pblock to the + * destination one. The entries are newly allocated so that the original + * pblock may be freed or the new one changed without affecting the other. + */ + +void pblock_copy(pblock *src, pblock *dst); + +/* + * pblock_pb2env copies the given pblock into the given environment, with + * one new env entry for each name/value pair in the pblock. + */ + +char **pblock_pb2env(pblock *pb, char **env); + + +/* --------------------------- Internal things ---------------------------- */ + + +pb_param *_pblock_fr(char *name, pblock *pb, int remove); + + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h new file mode 100644 index 00000000000..da88b41da15 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h @@ -0,0 +1,70 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * sem.h: Attempt to provide multi-process semaphores across platforms + * + * Rob McCool + */ + + +#ifndef SEM_H +#define SEM_H + +#include "systems.h" + + +/* All of the implementations currently use int as the semaphore type */ +#ifdef SEM_WIN32 +typedef HANDLE SEMAPHORE; +#define SEM_ERROR NULL +/* That oughta hold them (I hope) */ +#define SEM_MAXVALUE 32767 + +#else /* ! SEM_WIN32 */ +typedef int SEMAPHORE; +#define SEM_ERROR -1 +#endif /* SEM_WIN32 */ + +/* + * sem_init creates a semaphore using the given name and unique + * identification number. filename should be a file accessible to the + * process. Returns SEM_ERROR on error. + */ + +SEMAPHORE sem_init(char *name, int number); + +/* + * sem_terminate de-allocates the given semaphore. + */ + +void sem_terminate(SEMAPHORE id); + +/* + * sem_grab attempts to gain exclusive access to the given semaphore. If + * it can't get it, the caller will block. Returns -1 on error. + */ + +int sem_grab(SEMAPHORE id); + +/* + * sem_release releases this process's exclusive control over the given + * semaphore. Returns -1 on error. + */ + +int sem_release(SEMAPHORE id); + + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h new file mode 100644 index 00000000000..3104cb0ca65 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h @@ -0,0 +1,85 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * session.h: Deals with virtual sessions + * + * A session is the time between when a client connects and when it + * disconnects. Several requests may be handled in one session. + * + * Rob McCool + */ + + +#ifndef SESSION_H +#define SESSION_H + + +#include "../netsite.h" /* MALLOC etc */ +#include "net.h" /* dns-related stuff */ +#include "buffer.h" /* netbuf */ + + +/* ------------------------------ Structures ------------------------------ */ + + + +#define SESSION_HASHSIZE 5 + + +typedef struct { + /* Client-specific information */ + pblock *client; + + SYS_NETFD csd; + netbuf *inbuf; + + struct in_addr iaddr; +} Session; + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * session_create creates a new request structure for the client with the + * given socket descriptor and sockaddr. + */ + +Session *session_create(SYS_NETFD csd, struct sockaddr_in *sac); + +/* + * session_free frees the given session + */ + +void session_free(Session *sn); + +/* + * session_dns returns the DNS hostname of the client of this session, + * and inserts it into the client pblock. Returns NULL if unavailable. + */ + +#define session_dns(sn) session_dns_lookup(sn, 0) + +/* + * session_maxdns looks up a hostname from an IP address, and then verifies + * that the host is really who they claim to be. + */ + +#define session_maxdns(sn) session_dns_lookup(sn, 1) + +char *session_dns_lookup(Session *sn, int verify); + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h new file mode 100644 index 00000000000..887f96ae81e --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h @@ -0,0 +1,97 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * shexp.h: Defines and prototypes for shell exp. match routines + * + * + * This routine will match a string with a shell expression. The expressions + * accepted are based loosely on the expressions accepted by zsh. + * + * o * matches anything + * o ? matches one character + * o \ will escape a special character + * o $ matches the end of the string + * o [abc] matches one occurence of a, b, or c. The only character that needs + * to be escaped in this is ], all others are not special. + * o [a-z] matches any character between a and z + * o [^az] matches any character except a or z + * o ~ followed by another shell expression will remove any pattern + * matching the shell expression from the match list + * o (foo|bar) will match either the substring foo, or the substring bar. + * These can be shell expressions as well. + * + * The public interface to these routines is documented below. + * + * Rob McCool + * + */ + +#ifndef SHEXP_H +#define SHEXP_H + +/* + * Requires that the macro MALLOC be set to a "safe" malloc that will + * exit if no memory is available. If not under MCC httpd, define MALLOC + * to be the real malloc and play with fire, or make your own function. + */ + +#include "../netsite.h" + +#include <ctype.h> /* isalnum */ +#include <string.h> /* strlen */ + + + +/* --------------------------- Public routines ---------------------------- */ + + +/* + * shexp_valid takes a shell expression exp as input. It returns: + * + * NON_SXP if exp is a standard string + * INVALID_SXP if exp is a shell expression, but invalid + * VALID_SXP if exp is a valid shell expression + */ + +#define NON_SXP -1 +#define INVALID_SXP -2 +#define VALID_SXP 1 + +int shexp_valid(char *exp); + +/* + * shexp_match + * + * Takes a prevalidated shell expression exp, and a string str. + * + * Returns 0 on match and 1 on non-match. + */ + +int shexp_match(char *str, char *exp); + + +/* + * shexp_cmp + * + * Same as above, but validates the exp first. 0 on match, 1 on non-match, + * -1 on invalid exp. shexp_casecmp does the same thing but is case + * insensitive. + */ + +int shexp_cmp(char *str, char *exp); +int shexp_casecmp(char *str, char *exp); + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h new file mode 100644 index 00000000000..0692a051c78 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h @@ -0,0 +1,84 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * shmem.h: Portable abstraction for memory shared among a server's workers + * + * Rob McCool + */ + + +#ifndef _SHMEM_H +#define _SHMEM_H + +#include "netsite.h" +#include "systems.h" + + +/* --------------------------- Data structures ---------------------------- */ + + +#if defined (SHMEM_UNIX_MMAP) || defined (SHMEM_WIN32_MMAP) +#include "file.h" /* SYS_FILE */ + +typedef struct { + void *data; /* the data */ +#ifdef SHMEM_WIN32_MMAP + HANDLE fdmap; +#endif /* SHMEM_WIN32_MMAP */ + int size; /* the maximum length of the data */ + + char *name; /* internal use: filename to unlink if exposed */ + SYS_FILE fd; /* internal use: file descriptor for region */ +} shmem_s; + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * shmem_alloc allocates a region of shared memory of the given size, using + * the given name to avoid conflicts between multiple regions within the + * program. The region will not be automatically grown if its boundaries + * are over-run, use shmem_realloc for that. + * + * If expose is non-zero and the underlying system supports it, the + * file used to create the shared region will be visible to other processes + * running on the system. + * + * name should be unique to the program which calls this routine, otherwise + * conflicts will arise. + * + * Returns a new shared memory region, with the data element being a + * pointer to the shared memory. This function must be called before any + * daemon workers are spawned, in order for the handle to the shared region + * to be inherited by the children. + * + * Because of the requirement that the region must be inherited by the + * children, the region cannot be re-allocated with a larger size when + * necessary. + */ +shmem_s *shmem_alloc(char *name, int size, int expose); + + +/* + * shmem_free de-allocates the specified region of shared memory. + */ +void shmem_free(shmem_s *region); + +#endif /* SHMEM_UNIX_MMAP || SHMEM_WIN32_MMAP */ + + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h new file mode 100644 index 00000000000..193bc63c034 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h @@ -0,0 +1,222 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * systems.h: Lists of defines for systems + * + * This sets what general flavor the system is (UNIX, etc.), + * and defines what extra functions your particular system needs. + */ + + +#ifndef SYSTEMS_H +#define SYSTEMS_H + +#include <string.h> + + +#define DAEMON_ANY +#define DAEMON_LISTEN_SIZE 128 +#ifndef MCC_ADMSERV +#define DAEMON_STATS +#endif + +/* Linux is not currently supported */ +#ifdef linux + +#define FILE_UNIX +#undef FILE_STDIO +#undef DAEMON_UNIX_FORK +#undef DAEMON_UNIX_POOL +#define DAEMON_UNIX_MOBRULE +#undef DAEMON_STATS +#define BSD_FLOCK +#define BSD_RLIMIT +#define NET_SOCKETS +#define FILE_UNIX_MMAP +#define FILE_MMAP_FLAGS (MAP_FILE | MAP_PRIVATE) +#undef BSD_SIGNALS + +#undef NEED_CRYPT_PROTO +#undef AUTH_DBM +#define SEM_FLOCK + + +#define ZERO(ptr,len) memset(ptr,0,len) + +#elif defined(BSDI) + +#define FILE_UNIX +#define DAEMON_UNIX_MOBRULE +#define BSD_FLOCK +#define BSD_RLIMIT +#define NET_SOCKETS +#define FILE_UNIX_MMAP +#define FILE_MMAP_FLAGS (MAP_FILE | MAP_PRIVATE) +#define BSD_SIGNALS +#define BSD_TIME +#define BSD_MAIL +#undef NEED_CRYPT_PROTO +#define AUTH_DBM +#define SEM_FLOCK + +#define ZERO(ptr,len) memset(ptr,0,len) + +#elif defined(SOLARIS) + +#define FILE_UNIX +#undef FILE_STDIO +#define DAEMON_UNIX_MOBRULE +#define DAEMON_NEEDS_SEMAPHORE +#define NET_SOCKETS +#define FILE_UNIX_MMAP +#define FILE_MMAP_FLAGS MAP_PRIVATE +#undef BSD_SIGNALS +#define BSD_RLIMIT +#define NEED_CRYPT_H +#define AUTH_DBM +/* The Solaris routines return ENOSPC when too many semaphores are SEM_UNDO. */ +#define SEM_FLOCK +#define DLL_CAPABLE +#define DLL_DLOPEN + +#define ZERO(ptr,len) memset(ptr,0,len) + +#elif defined(SUNOS4) + +#define BSD_SIGNALS +#define BSD_TIME +#define BSD_MAIL +#define BSD_FLOCK +#define BSD_RLIMIT +#define FILE_UNIX +#undef FILE_STDIO +#define DAEMON_UNIX_MOBRULE +#define NET_SOCKETS +#define FILE_UNIX_MMAP +#define FILE_MMAP_FLAGS MAP_PRIVATE +#undef NEED_CRYPT_H +#define NEED_CRYPT_PROTO +#define AUTH_DBM +#define SEM_FLOCK +#define ZERO(ptr,len) memset(ptr,0,len) +#define DLL_CAPABLE +#define DLL_DLOPEN + +#elif defined(OSF1) + +#undef BSD_SIGNALS +#define BSD_TIME +#define BSD_FLOCK +#define BSD_RLIMIT +#define FILE_UNIX +#undef FILE_STDIO +#define DAEMON_UNIX_MOBRULE +#define DAEMON_NEEDS_SEMAPHORE +#define NET_SOCKETS +#define FILE_UNIX_MMAP +#define FILE_MMAP_FLAGS MAP_PRIVATE +#define AUTH_DBM +#define SEM_FLOCK +#define ZERO(ptr,len) memset(ptr,0,len) +#define DLL_CAPABLE +#define DLL_DLOPEN + +#elif defined(AIX) + +#define FILE_UNIX +#undef FILE_STDIO +#undef DAEMON_UNIX_FORK +#undef DAEMON_UNIX_POOL +#define DAEMON_UNIX_MOBRULE +#define DAEMON_NEEDS_SEMAPHORE +#define NET_SOCKETS +#define FILE_UNIX_MMAP +#define FILE_MMAP_FLAGS MAP_PRIVATE +#undef BSD_SIGNALS +#define BSD_RLIMIT +#undef NEED_CRYPT_H +#define AUTH_DBM +#define SEM_FLOCK +#define ZERO(ptr,len) memset(ptr,0,len) +#define DLL_CAPABLE +#define DLL_DLOPEN + +#elif defined(HPUX) + +#define FILE_UNIX +#undef FILE_STDIO +#define DAEMON_UNIX_MOBRULE +#define DAEMON_NEEDS_SEMAPHORE +#define NET_SOCKETS +#define FILE_UNIX_MMAP +#define FILE_MMAP_FLAGS MAP_PRIVATE +#undef BSD_SIGNALS +#undef BSD_RLIMIT +#undef NEED_CRYPT_H +#define AUTH_DBM +#define SEM_FLOCK +#define ZERO(ptr,len) memset(ptr,0,len) +#define DLL_CAPABLE +#define DLL_HPSHL + +#elif defined (IRIX) + +#define FILE_UNIX +#undef FILE_STDIO +#undef DAEMON_UNIX_FORK +#undef DAEMON_UNIX_POOL +#define DAEMON_UNIX_MOBRULE +#define DLL_CAPABLE +#define DLL_DLOPEN +#define NET_SOCKETS +#define FILE_UNIX_MMAP +#define FILE_MMAP_FLAGS MAP_PRIVATE +#undef BSD_SIGNALS +#define BSD_RLIMIT +#define NEED_CRYPT_H +#define AUTH_DBM +#define SEM_FLOCK +#define ZERO(ptr,len) memset(ptr,0,len) + +#else /* Windows NT */ + +#include <wtypes.h> +#include <winbase.h> + +typedef void* PASSWD; + +#define FILE_WIN32 +#define NET_SOCKETS +#define NET_WINSOCK +#define DAEMON_WIN32 +#undef AUTH_DBM +#define ZERO(ptr, len) ZeroMemory(ptr, len) +#define SEM_WIN32 +#define DLL_CAPABLE +#define DLL_WIN32 +#define NO_NODELOCK /* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagh */ + +/* The stat call under NT doesn't define these macros */ +#define S_ISDIR(mode) ((mode&S_IFMT) == S_IFDIR) +#define S_ISREG(mode) ((mode&S_IFMT) == S_IFREG) + +#define strcasecmp util_strcasecmp +#define strncasecmp util_strncasecmp +int util_strcasecmp(const char *s1, const char *s2); +int util_strncasecmp(const char *s1, const char *s2, int n); +#endif /* Windows NT */ + +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h new file mode 100644 index 00000000000..e53cc385049 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h @@ -0,0 +1,130 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * systhr.h: Abstracted threading mechanisms + * + * Rob McCool + */ + +#ifndef _SYSTHR_H +#define _SYSTHR_H + +#include "netsite.h" +#include "systems.h" + +#ifdef THREAD_ANY + +#ifdef USE_NSPR +#include <nspr/prthread.h> +#include <nspr/prglobal.h> + +typedef PRThread* SYS_THREAD; +#endif + +#ifdef THREAD_WIN32 +#include <nspr/prthread.h> +#include <nspr/prglobal.h> +#include <process.h> +typedef struct { + HANDLE hand; + DWORD id; +} sys_thread_s; +typedef sys_thread_s *SYS_THREAD; +#endif + +/* + * systhread_start creates a thread with the given priority, will allocate + * a stack of stksz bytes, and calls fn with arg as its argument. stksz + * of zero will allocate a default stack size. + * + * XXX Priorities are system dependent + */ + +SYS_THREAD systhread_start(int prio, int stksz, void (*fn)(void *), void *arg); + +/* + * systhread_current returns a pointer to the current thread. + */ +#ifdef USE_NSPR +#define systhread_current() PR_CurrentThread() +#elif defined(THREAD_WIN32) +#define systhread_current() GetCurrentThreadId() +#endif + +/* + * systhread_attach makes an existing thread an NSPR thread. Currently this + * is used only in NT. + */ + +SYS_THREAD systhread_attach(); + +/* + * systhread_terminate terminates the thread that is passed in. + */ +void systhread_terminate(SYS_THREAD thr); + + +/* + * systhread_sleep puts the calling thread to sleep for the given number + * of milliseconds. + */ +void systhread_sleep(int milliseconds); + +/* + * systhread_init initializes the threading system. name is a name for the + * program for debugging. + */ +void systhread_init(char *name); + +/* + * systhread_timerset starts or re-sets the interrupt timer for a thread + * system. This should be considered a suggestion as most systems don't allow + * the timer interval to be changed. + */ +#ifdef THREAD_NSPR_USER +#define systhread_timerset(usec) PR_StartEvents(usec) + +#elif defined(USE_NSPR) +#define systhread_timerset(usec) (void)(usec) + +#elif defined(THREAD_WIN32) +#define systhread_timerset(usec) (void)(usec) +#endif + + +/* + * newkey allocates a new integer id for thread-private data. Use this + * key to identify a variable which you want to appear differently + * between threads, and then use setdata to associate a value with this + * key for each thread. + */ +int systhread_newkey(void); + +/* + * Get data that has been previously associated with key in this thread. + * Returns NULL if setkey has not been called with this key by this + * thread previously, or the data that was previously used with setkey + * by this thread with this key. + */ +void *systhread_getdata(int key); + +/* + * Associate data with the given key number in this thread. + */ +void systhread_setdata(int key, void *data); + +#endif +#endif diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h new file mode 100644 index 00000000000..f710ffc2530 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h @@ -0,0 +1,205 @@ +/* + * $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. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * util.h: A hodge podge of utility functions and standard functions which + * are unavailable on certain systems + * + * Rob McCool + */ + + +#ifndef HTTPD_UTIL_H +#define HTTPD_UTIL_H + +#include "buffer.h" /* filebuf for getline */ + +#include <time.h> /* struct tm */ + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * getline scans in buf until it finds a LF or CRLF, storing the string in + * l. It will terminate the string and return: + * + * 0 when done, with the scanned line (minus CR or LF) in l + * 1 upon EOF, with the scanned line (minus CR or LF) in l + * -1 on error with the error description in l (uses lineno for information) + */ + +int util_getline(filebuf *buf, int lineno, int maxlen, char *l); + + +/* + * can_exec returns 1 if you can execute the file described by finfo, and + * 0 if you can't. + */ + +#ifdef XP_UNIX +#include <sys/stat.h> +#include <sys/types.h> + +int util_can_exec(struct stat *finfo, uid_t uid, gid_t gid); + +#endif /* XP_UNIX */ +/* + * env_create creates a new environment with the given env, with n new + * entries, and places the current position that you should add your + * entries with at pos. + * + * If env is NULL, it will allocate a new one. If not, it will reallocate + * that one. + */ + +char **util_env_create(char **env, int n, int *pos); + +/* + * util_env_str allocates a string from the given name and value and + * returns it. It does not check for things like = signs in name. + */ + +char *util_env_str(char *name, char *value); + +/* + * env_replace replaces the occurrence of the given variable with the + * value you give. + */ + +void util_env_replace(char **env, char *name, char *value); + +/* + * util_env_free frees an environment. + */ + +void util_env_free(char **env); + +/* + * util_env_find looks through env for the named string. Returns the + * corresponding value if the named string is found, or NULL if not. + */ +char *util_env_find(char **env, char *name); + + +/* + * hostname gets the local hostname. Returns NULL if it can't find a FQDN. + * You are free to realloc or free this string. + */ + +char *util_hostname(void); + + +/* + * chdir2path changes the current directory to the one that the file + * path is in. path should point to a file. Caveat: path must be a writable + * string. It won't get modified permanently. + */ + +int util_chdir2path(char *path); + +/* + * is_mozilla checks if the given user-agent is mozilla, of at least + * the given major and minor revisions. These are strings to avoid + * ambiguities like 1.56 > 1.5 + */ + +int util_is_mozilla(char *ua, char *major, char *minor); + +/* + * is_url will return 1 if the given string seems to be a URL, or will + * return 0 otherwise. + * + * Because of stupid news URLs, this will return 1 if the string has + * all alphabetic characters up to the first colon and will not check for + * the double slash. + */ + +int util_is_url(char *url); + +/* + * util_later_than checks the date in the string ims, and if that date is + * later than or equal to the one in the tm struct lms, then it returns 1. + * + * Handles RFC 822, 850, and ctime formats. + */ + +int util_later_than(struct tm *lms, char *ims); + + +/* + * util_uri_is_evil returns 1 if a URL has ../ or // in it. + */ +int util_uri_is_evil(char *t); + +/* + * util_uri_parse gets rid of /../, /./, and //. + * + * Assumes that either the string starts with a /, or the string will + * not .. right off of its beginning. As such, ../foo.gif will + * not be changed, although /../foo.gif will become /foo.gif. + */ + +void util_uri_parse(char *uri); + +/* + * util_uri_unescape unescapes the given URI in place (% conversions only). + */ + +void util_uri_unescape(char *s); + +/* + * util_uri_escape escapes any nasty chars in s and copies the string into d. + * If d is NULL, it will allocate and return a properly sized string. + * Warning: does not check bounds on a given d. + * + * util_url_escape does the same thing but does it for a url, i.e. ?:+ is + * not escaped. + */ + +char *util_uri_escape(char *d, char *s); +char *util_url_escape(char *d, char *s); + +/* + * util_sh_escape places a \ in front of any shell-special characters. + * Returns a newly-allocated copy of the string. + */ + +char *util_sh_escape(char *s); + +/* + * util_itoa converts the given integer to a string into a. + */ + +int util_itoa(int i, char *a); + +/* + * util_vsprintf and util_sprintf are simplified clones of the System V + * vsprintf and sprintf routines. + * + * Returns the number of characters printed. Only handles %d and %s, + * does not handle any width or precision. + */ + +#include <stdarg.h> + +int util_vsprintf(char *s, register char *fmt, va_list args); +int util_sprintf(char *s, char *fmt, ...); + +/* These routines perform bounds checks. */ +int util_vsnprintf(char *s, int n, register char *fmt, va_list args); +int util_snprintf(char *s, int n, char *fmt, ...); + +#endif |