http_core.h revision 31dcba758e3bed3258cbcb1de687c003ddb360c4
97a9a944b5887e91042b019776c41d5dd74557aferikabele/* Licensed to the Apache Software Foundation (ASF) under one or more
97a9a944b5887e91042b019776c41d5dd74557aferikabele * contributor license agreements. See the NOTICE file distributed with
97a9a944b5887e91042b019776c41d5dd74557aferikabele * this work for additional information regarding copyright ownership.
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive * The ASF licenses this file to You under the Apache License, Version 2.0
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive * (the "License"); you may not use this file except in compliance with
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive * the License. You may obtain a copy of the License at
5a58787efeb02a1c3f06569d019ad81fd2efa06end * Unless required by applicable law or agreed to in writing, software
5a58787efeb02a1c3f06569d019ad81fd2efa06end * distributed under the License is distributed on an "AS IS" BASIS,
5a58787efeb02a1c3f06569d019ad81fd2efa06end * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5a58787efeb02a1c3f06569d019ad81fd2efa06end * See the License for the specific language governing permissions and
5a58787efeb02a1c3f06569d019ad81fd2efa06end * limitations under the License.
5a58787efeb02a1c3f06569d019ad81fd2efa06end * @brief CORE HTTP Daemon
5a58787efeb02a1c3f06569d019ad81fd2efa06end * @defgroup APACHE_CORE_HTTPD Core HTTP Daemon
a63f0ab647ad2ab72efc9bea7a66e24e9ebc5cc2nd * @ingroup APACHE_CORE
5a58787efeb02a1c3f06569d019ad81fd2efa06endextern "C" {
5a58787efeb02a1c3f06569d019ad81fd2efa06end/* ****************************************************************
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * The most basic server code is encapsulated in a single module
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * known as the core, which is just *barely* functional enough to
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * serve documents, though not terribly well.
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * Largely for NCSA back-compatibility reasons, the core needs to
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * make pieces of its config structures available to other modules.
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * The accessors are declared here, along with the interpretation
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * of one of them (allow_options).
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * @defgroup APACHE_CORE_HTTPD_ACESSORS Acessors
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * @brief File/Directory Accessor directives
5a58787efeb02a1c3f06569d019ad81fd2efa06end/** No directives */
5a58787efeb02a1c3f06569d019ad81fd2efa06end/** Indexes directive */
a63f0ab647ad2ab72efc9bea7a66e24e9ebc5cc2nd/** Includes directive */
5a58787efeb02a1c3f06569d019ad81fd2efa06end/** FollowSymLinks directive */
5a58787efeb02a1c3f06569d019ad81fd2efa06end/** ExecCGI directive */
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive/** directive unset */
06ba4a61654b3763ad65f52283832ebf058fdf1cslive/** IncludesNOEXEC directive */
06ba4a61654b3763ad65f52283832ebf058fdf1cslive/** SymLinksIfOwnerMatch directive */
97a9a944b5887e91042b019776c41d5dd74557aferikabele/** MultiViews directive */
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive/** All directives */
06ba4a61654b3763ad65f52283832ebf058fdf1cslive#define OPT_ALL (OPT_INDEXES|OPT_INCLUDES|OPT_SYM_LINKS|OPT_EXECCGI)
06ba4a61654b3763ad65f52283832ebf058fdf1cslive * @defgroup get_remote_host Remote Host Resolution
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive * @ingroup APACHE_CORE_HTTPD
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive/** REMOTE_HOST returns the hostname, or NULL if the hostname
97a9a944b5887e91042b019776c41d5dd74557aferikabele * lookup fails. It will force a DNS lookup according to the
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive * HostnameLookups setting.
97a9a944b5887e91042b019776c41d5dd74557aferikabele/** REMOTE_NAME returns the hostname, or the dotted quad if the
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive * hostname lookup fails. It will force a DNS lookup according
97a9a944b5887e91042b019776c41d5dd74557aferikabele * to the HostnameLookups setting.
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive/** REMOTE_NOLOOKUP is like REMOTE_NAME except that a DNS lookup is
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive * never forced.
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd/** REMOTE_DOUBLE_REV will always force a DNS lookup, and also force
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd * a double reverse lookup, regardless of the HostnameLookups
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd * setting. The result is the (double reverse checked) hostname,
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd * or NULL if any of the lookups fail.
06ba4a61654b3763ad65f52283832ebf058fdf1cslive/** @} // get_remote_host */
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive/** all of the requirements must be met */
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive/** any of the requirements must be met */
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive/** There are no applicable satisfy lines */
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive/** Make sure we don't write less than 8000 bytes at any one time.
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive/** default maximum of internal redirects */
5a58787efeb02a1c3f06569d019ad81fd2efa06end/** default maximum subrequest nesting level */
AP_DECLARE(const char *) ap_get_remote_host(conn_rec *conn, void *dir_config, int type, int *str_is_ip);
struct require_line {
char *requirement;
* the code that cares really is in http_core.c. Also, another accessor.
void **notes;
int deliver_script;
int suppress_charset;
#define AP_NOTE_DIRECTORY_WALK 0
typedef unsigned char allow_options_t;
typedef unsigned char overrides_t;
typedef unsigned long etag_components_t;
#define ETAG_UNSET 0
/** path of the directory/regex/etc. see also d_is_fnmatch/absolute below */
unsigned d_components;
char *ap_default_type;
#define HOSTNAME_LOOKUP_OFF 0
#define USE_CANONICAL_NAME_OFF (0)
#define ADD_DEFAULT_CHARSET_OFF (0)
const char *add_default_charset_name;
#ifdef RLIMIT_CPU
#ifdef RLIMIT_NPROC
int loglevel;
ap_regex_t *r;
* What attributes/data should be included in ETag generation?
#define ENABLE_MMAP_OFF (0)
#define ENABLE_SENDFILE_OFF (0)
#define USE_CANONICAL_PHYS_PORT_OFF (0)
#ifdef GPROF
char *gprof_dir;
const char *ap_document_root;
char *access_name;
const char *protocol;
#define AP_TRACE_DISABLE 0
int trace_enable;
/* for AddOutputFiltersByType in core.c */
/* for http_config.c */
AP_CORE_DECLARE_NONSTD(const char *) ap_limit_section(cmd_parms *cmd, void *dummy, const char *arg);
* Runtime status/management
const char *s_value;
long i_value;
const char *description;
const char *name;
* This hook provdes a way for modules to provide metrics/statistics about
(request_rec *r));
#ifdef __cplusplus