httpd.h revision d96aa158770d3f83cb59cf0f2f7402e175f7dfcc
842ae4bd224140319ae7feec1872b93dfd491143fielding/* ====================================================================
842ae4bd224140319ae7feec1872b93dfd491143fielding * Copyright (c) 1995-1999 The Apache Group. All rights reserved.
842ae4bd224140319ae7feec1872b93dfd491143fielding * Redistribution and use in source and binary forms, with or without
842ae4bd224140319ae7feec1872b93dfd491143fielding * modification, are permitted provided that the following conditions
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * 1. Redistributions of source code must retain the above copyright
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * notice, this list of conditions and the following disclaimer.
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * 2. Redistributions in binary form must reproduce the above copyright
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * notice, this list of conditions and the following disclaimer in
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * the documentation and/or other materials provided with the
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * distribution.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * 3. All advertising materials mentioning features or use of this
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * software must display the following acknowledgment:
db3fa7db7c7910f2f23c3e3ffe0cf9f41a1899b9trawick * "This product includes software developed by the Apache Group
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * for use in the Apache HTTP server project (http://www.apache.org/)."
43c3e6a4b559b76b750c245ee95e2782c15b4296jim * 4. The names "Apache Server" and "Apache Group" must not be used to
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * endorse or promote products derived from this software without
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * prior written permission. For written permission, please contact
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * apache@apache.org.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * 5. Products derived from this software may not be called "Apache"
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * nor may "Apache" appear in their names without prior written
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm * permission of the Apache Group.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * 6. Redistributions of any form whatsoever must retain the following
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * acknowledgment:
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * "This product includes software developed by the Apache Group
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * for use in the Apache HTTP server project (http://www.apache.org/)."
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * OF THE POSSIBILITY OF SUCH DAMAGE.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * ====================================================================
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * This software consists of voluntary contributions made by many
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * individuals on behalf of the Apache Group and was originally based
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * on public domain software written at the National Center for
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Supercomputing Applications, University of Illinois, Urbana-Champaign.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * For more information on the Apache Group and the Apache HTTP server
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * project, please see <http://www.apache.org/>.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingextern "C" {
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * httpd.h: header for simple (ha! not anymore) http daemon
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Headers in which EVERYONE has an interest... */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* ----------------------------- config dir ------------------------------ */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Define this to be the default server home dir. Most things later in this
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * file with a relative pathname will have this added.
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm/* Set default for OS/2 file system */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Set default for Windows file system */
e8f95a682820a599fe41b22977010636be5c2717jim/* Set the default for BeOS */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#endif /* HTTPD_ROOT */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Default location of documents. Can be overridden by the DocumentRoot
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * directive.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Set default for OS/2 file system */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#endif /* DOCUMENT_LOCATION */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Max. number of dynamically loaded modules */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Default administrator's address */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* The target name of the installed Apache */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * --------- You shouldn't have to edit anything below this line ----------
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Any modifications to any defaults not defined above should be done in the
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * respective config. file.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* -- Internal representation for a HTTP protocol number, e.g., HTTP/1.1 -- */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#define HTTP_VERSION(major,minor) (1000*(major)+(minor))
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* -------------- Port number for server running standalone --------------- */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding#define ap_is_default_port(port,r) ((port) == ap_default_port(r))
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* --------- Default user name and group name running standalone ---------- */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* --- These may be specified as numbers by placing a # before a number --- */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* The name of the log files */
43c3e6a4b559b76b750c245ee95e2782c15b4296jim#endif /* DEFAULT_XFERLOG */
43c3e6a4b559b76b750c245ee95e2782c15b4296jim#endif /* DEFAULT_ERRORLOG */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Define this to be what your HTML directory content files are called */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Define this to 1 if you want fancy indexing, 0 otherwise */
43c3e6a4b559b76b750c245ee95e2782c15b4296jim/* Define this to be what type you'd like returned for files with unknown */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* suffixes. MUST be all lower case. */
43c3e6a4b559b76b750c245ee95e2782c15b4296jim/* Define this to be what your per-directory security files are called */
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding/* Set default for OS/2 file system */
43c3e6a4b559b76b750c245ee95e2782c15b4296jim#endif /* DEFAULT_ACCESS_FNAME */
db3fa7db7c7910f2f23c3e3ffe0cf9f41a1899b9trawick/* The name of the server config file */
#ifndef SERVER_CONFIG_FILE
#ifndef RESOURCE_CONFIG_FILE
#ifndef TYPES_CONFIG_FILE
#ifndef ACCESS_CONFIG_FILE
#ifndef DEFAULT_RFC1413
#define DEFAULT_RFC1413 0
#ifndef DEFAULT_USER_DIR
#ifndef DEFAULT_PATH
#ifndef SHELL_PATH
#ifndef SUEXEC_BIN
#ifndef DEFAULT_TIMEOUT
#ifndef DEFAULT_KEEPALIVE_TIMEOUT
#ifndef DEFAULT_KEEPALIVE
* in http_main.c so we can keep track of various errors.
#ifndef SCOREBOARD_MAINTENANCE_INTERVAL
#ifndef DEFAULT_MAX_REQUESTS_PER_CHILD
#define DEFAULT_EXCESS_REQUESTS_PER_CHILD 0
#ifndef DEFAULT_LISTENBACKLOG
#ifndef DEFAULT_LIMIT_REQUEST_LINE
#ifndef DEFAULT_LIMIT_REQUEST_FIELDSIZE
#ifndef DEFAULT_LIMIT_REQUEST_FIELDS
enum server_token_type {
#define ap_add_version_component(x) ((void)0)
#ifndef SERVER_SUPPORT
/* The size of the static array in http_protocol.c for storing
#define ap_status_drops_connection(x) \
(((x) == HTTP_BAD_REQUEST) || \
((x) == HTTP_REQUEST_TIME_OUT) || \
((x) == HTTP_LENGTH_REQUIRED) || \
((x) == HTTP_REQUEST_ENTITY_TOO_LARGE) || \
((x) == HTTP_REQUEST_URI_TOO_LARGE) || \
((x) == HTTP_INTERNAL_SERVER_ERROR) || \
((x) == HTTP_SERVICE_UNAVAILABLE) || \
((x) == HTTP_NOT_IMPLEMENTED))
#define M_GET 0
#ifdef CHARSET_EBCDIC
#define ASCIITEXT_MAGIC_TYPE_PREFIX "text/x-ascii-" /* Text files whose content-type starts with this are passed thru unconverted */
#ifndef CHARSET_EBCDIC
#include "ebcdic.h"
#define REQUEST_NO_BODY 0
struct htaccess_result {
#include "util_uri.h"
struct process_rec {
int argc;
const char **argv;
const char *short_name;
struct request_rec {
* protocol.c should ever touch...
/* Request method, two ways; also, protocol, etc.. Outside of protocol.c,
const char *content_encoding;
int no_cache;
int no_local_copy;
char *filename;
char *path_info;
struct conn_rec {
struct server_addr_rec {
struct server_rec {
const char *defn_name;
unsigned defn_line_number;
char *srm_confname;
char *access_confname;
char *server_admin;
char *server_hostname;
char *error_fname;
int loglevel;
/* Prototypes for utilities... util.c.
#ifdef OS2
int cflags);
} configfile_t;
void *param,
int(*getc_func)(void*),
#ifdef NEED_STRERROR
#ifndef HAVE_CANONICAL_FILENAME
* We can't define these in os.h because of dependence on ap_context_t pointer.
#define ap_os_canonical_filename(p,f) (f)
#define ap_os_case_canonical_filename(p,f) (f)
#define ap_os_systemcase_filename(p,f) (f)
#ifdef WIN32
#ifdef _OSD_POSIX
#ifndef LOW_SLACK_LINE
#ifdef NO_SLACK
#if !defined (MULTITHREAD) && \
#define OPTIMIZE_TIMEOUTS
#ifdef DEBUG_SIGSTOP
extern int raise_sigstop_flags;
#define RAISE_SIGSTOP(x) do { \
#define RAISE_SIGSTOP(x)
#ifdef strtoul
#ifdef __cplusplus