Changes with Apache 2.3.0
[Remove entries to the current 2.0 and 2.2 section below, when backported]
+ *) Doxygen fixup [Neale Ranns neale ranns.org, Ian Holsman]
+
*) prefork and worker MPMs: Support a graceful-stop procedure:
Server will wait until existing requests are finished or until
"GracefulShutdownTimeout" number of seconds before exiting.
-PROJECT_NAME=Apache
+PROJECT_NAME=Apache2
-#INPUT=srclib/apr
+# make the generated documentation searchable
+SEARCHENGINE=YES
INPUT=.
RECURSIVE=YES
FILE_PATTERNS=*.h
OUTPUT_DIRECTORY=docs/dox
+#EXTRACT_STATIC=YES
+EXTRACT_ALL=YES
+
+# add documentation for functions that are declared internal use only
+INTERNAL_DOCS=YES
+
ENABLE_PREPROCESSING=YES
MACRO_EXPANSION=YES
QUIET=YES
PREDEFINED="APR_DECLARE(x)=x" \
"APR_DECLARE_NONSTD(x)=x" \
"AP_DECLARE_HOOK(ret,name,args)=ret name args;" \
+ "APR_DECLARE_OPTIONAL_FN(ret,name,args)=ret name args;" \
"AP_DECLARE(x)=x" \
"AP_DECLARE_NONSTD(x)=x" \
+ AP_CORE_DECLARE(x)=x \
+ "AP_CORE_DECLARE_NONSTD(x)=x" \
"APR_HAS_THREADS" \
"APR_HAS_MMAP" \
APR_HAS_INLINE \
FULL_PATH_NAMES=YES
# some autoconf guru needs to make configure set this correctly...
-STRIP_FROM_PATH=/var/www/lxr/source
+#STRIP_FROM_PATH=/var/www/lxr/source
+
+#GENERATE_TAGFILE=docs/dox/httpd.tag
+#TAGFILES=../apr/docs/dox/apr.tag=/apr ../apr-util/docs/dox/apu.tag=/apr-util
* limitations under the License.
*/
+/**
+ * @file ap_compat.h
+ * @brief Redefine Apache 1.3 symbols
+ */
+
#ifndef AP_COMPAT_H
#define AP_COMPAT_H
* limitations under the License.
*/
+/**
+ * @file ap_config.h
+ * @brief Symbol export macros and hook functions
+ */
+
#ifndef AP_CONFIG_H
#define AP_CONFIG_H
#include "apr_hooks.h"
#include "apr_optional_hooks.h"
-/**
- * @file ap_config.h
- * @brief Symbol export macros and hook functions
- */
-
/* Although this file doesn't declare any hooks, declare the hook group here */
-/** @defgroup hooks Apache Hooks */
+/**
+ * @defgroup hooks Apache Hooks
+ * @ingroup APACHE_CORE
+ */
#ifdef DOXYGEN
/* define these just so doxygen documents them */
* limitations under the License.
*/
+/**
+ * @file ap_config_layout.h
+ * @brief Apache Config Layout
+ */
+
#ifndef AP_CONFIG_LAYOUT_H
#define AP_CONFIG_LAYOUT_H
* limitations under the License.
*/
+/**
+ * @file ap_listen.h
+ * @brief Apache Listeners Library
+ *
+ * @defgroup APACHE_CORE_LISTEN Apache Listeners Library
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef AP_LISTEN_H
#define AP_LISTEN_H
#include "httpd.h"
#include "http_config.h"
-/**
- * @package Apache Listeners Library
- */
-
typedef struct ap_listen_rec ap_listen_rec;
typedef apr_status_t (*accept_function)(void **csd, ap_listen_rec *lr, apr_pool_t *ptrans);
/**
- * Apache's listeners record. These are used in the Multi-Processing Modules
+ * @brief Apache's listeners record.
+ *
+ * These are used in the Multi-Processing Modules
* to setup all of the sockets for the MPM to listen to and accept on.
*/
struct ap_listen_rec {
RSRC_CONF, "Receive buffer size in bytes")
#endif
+/** @} */
* limitations under the License.
*/
-#ifndef APACHE_AP_MMN_H
-#define APACHE_AP_MMN_H
-
/**
- * @package Module Magic Number
+ * @file ap_mpm.h
+ * @brief Module Magic Number
+ *
+ * @defgroup APACHE_CORE_MMN Module Magic Number
+ * @ingroup APACHE_CORE
+ * @{
*/
+#ifndef APACHE_AP_MMN_H
+#define APACHE_AP_MMN_H
+
/*
* MODULE_MAGIC_NUMBER_MAJOR
* Major API changes that could cause compatibility problems for older modules
#define MODULE_MAGIC_AT_LEAST old_broken_macro_we_hope_you_are_not_using
#endif /* !APACHE_AP_MMN_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file ap_mmn.h
+ * @brief Apache Multi-Processing Module library
+ *
+ * @defgroup APACHE_CORE_MPM Multi-Processing Module library
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef AP_MPM_H
#define AP_MPM_H
#include "apr_thread_proc.h"
-/**
- * @package Multi-Processing Module library
- */
-
/*
The MPM, "multi-processing model" provides an abstraction of the
interface with the OS for distributing incoming connections to
#endif /*AP_ENABLE_EXCEPTION_HOOK*/
#endif
+/** @} */
* limitations under the License.
*/
+/**
+ * @file ap_provider.h
+ * @brief Apache Provider API
+ *
+ * @defgroup APACHE_CORE_PROVIDER Provider API
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef AP_PROVIDER_H
#define AP_PROVIDER_H
#include "ap_config.h"
-/**
- * @package Provider API
- */
-
/**
* This function is used to register a provider with the global
* provider pool.
const char *provider_version);
#endif
+/** @} */
-----------------------------------------------------------------------------
*/
+/**
+ * @file ap_regex.h
+ * @brief Apache Regex defines
+ */
+
#ifndef AP_REGEX_H
#define AP_REGEX_H
* limitations under the License.
*/
+/**
+ * @file ap_regkey.h
+ * @brief APR-style Win32 Registry Manipulation
+ */
+
#ifndef AP_REGKEY_H
#define AP_REGKEY_H
*/
AP_DECLARE(const ap_regkey_t *) ap_regkey_const(int i);
-/**
- * @file ap_regkey.h
- * @brief APR-style Win32 Registry Manipulation
- */
-
/**
* Win32 Only: Constants for ap_regkey_open()
*/
* limitations under the License.
*/
+/**
+ * @file ap_release.h
+ * @brief Version Release defines
+ */
+
#ifndef AP_RELEASE_H
#define AP_RELEASE_H
* limitations under the License.
*/
+/**
+ * @file http_config.h
+ * @brief Apache Configuration
+ *
+ * @defgroup APACHE_CORE_CONFIG Configuration
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_HTTP_CONFIG_H
#define APACHE_HTTP_CONFIG_H
extern "C" {
#endif
-/**
- * @file http_config.h
- * @brief Apache Configuration
- */
-
/*
* The central data structures around here...
*/
ap_conf_vector_t *section_vector);
/**
- * @defgroup ap_check_cmd_context ap_check_cmd_context
+ * @defgroup ap_check_cmd_context Check command context
* @{
*/
/**
#ifdef CORE_PRIVATE
/**
- * This structure is used to assign symbol names to module pointers
+ * @brief This structure is used to assign symbol names to module pointers
*/
typedef struct {
const char *name;
#endif
#endif /* !APACHE_HTTP_CONFIG_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file http_connection.h
+ * @brief Apache connection library
+ *
+ * @defgroup APACHE_CORE_CONNECTION Connection Library
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_HTTP_CONNECTION_H
#define APACHE_HTTP_CONNECTION_H
#ifdef __cplusplus
extern "C" {
#endif
-
/**
- * @package Apache connection library
+ * @file http_connection.h
+ * @brief Apache connection library
*/
+
#ifdef CORE_PRIVATE
/**
* This is the protocol module driver. This calls all of the
* @param csd The mechanism on which this connection is to be read.
* Most times this will be a socket, but it is up to the module
* that accepts the request to determine the exact type.
- * @deffunc void ap_process_connection(conn_rec *c, void *csd)
*/
AP_CORE_DECLARE(void) ap_process_connection(conn_rec *c, void *csd);
+/**
+ * Flushes all remain data in the client send buffer
+ * @param c The connection to flush
+ */
AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c);
/**
* if it encounters a fatal error condition.
*
* @param p The pool from which to allocate the connection record
+ * @param server The server record to create the connection too.
* @param csd The socket that has been accepted
* @param conn_id A unique identifier for this connection. The ID only
* needs to be unique at that time, not forever.
* @param sbh A handle to scoreboard information for this connection.
+ * @param alloc The bucket allocator to use for all bucket/brigade creations
* @return An allocated connection record or NULL.
*/
AP_DECLARE_HOOK(conn_rec *, create_connection,
* Most times this will be a socket, but it is up to the module
* that accepts the request to determine the exact type.
* @return OK or DECLINED
- * @deffunc int ap_run_pre_connection(conn_rec *c, void *csd)
*/
AP_DECLARE_HOOK(int,pre_connection,(conn_rec *c, void *csd))
* to handle the request is the last module run.
* @param c The connection on which the request has been received.
* @return OK or DECLINED
- * @deffunc int ap_run_process_connection(conn_rec *c)
*/
AP_DECLARE_HOOK(int,process_connection,(conn_rec *c))
-/* End Of Connection (EOC) bucket */
-
+/** End Of Connection (EOC) bucket */
AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_eoc;
/**
* Make the bucket passed in an End Of Connection (EOC) bucket
* @param b The bucket to make into an EOC bucket
* @return The new bucket, or NULL if allocation failed
- * @deffunc apr_bucket *ap_bucket_eoc_make(apr_bucket *b)
*/
AP_DECLARE(apr_bucket *) ap_bucket_eoc_make(apr_bucket *b);
* that the connection will be closed.
* @param list The freelist from which this bucket should be allocated
* @return The new bucket, or NULL if allocation failed
- * @deffunc apr_bucket *ap_bucket_eoc_create(apr_bucket_alloc_t *list)
*/
AP_DECLARE(apr_bucket *) ap_bucket_eoc_create(apr_bucket_alloc_t *list);
#endif
#endif /* !APACHE_HTTP_REQUEST_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file http_core.h
+ * @brief CORE HTTP Daemon
+ *
+ * @defgroup APACHE_CORE_HTTPD Core HTTP Daemon
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_HTTP_CORE_H
#define APACHE_HTTP_CORE_H
extern "C" {
#endif
-/**
- * @package CORE HTTP Daemon
- */
-
/* ****************************************************************
*
* The most basic server code is encapsulated in a single module
* of one of them (allow_options).
*/
+/**
+ * @defgroup APACHE_CORE_HTTPD_ACESSORS Acessors
+ *
+ * @brief File/Directory Accessor directives
+ *
+ * @{
+ */
+
+/** No directives */
#define OPT_NONE 0
+/** Indexes directive */
#define OPT_INDEXES 1
+/** Includes directive */
#define OPT_INCLUDES 2
+/** FollowSymLinks directive */
#define OPT_SYM_LINKS 4
+/** ExecCGI directive */
#define OPT_EXECCGI 8
+/** directive unset */
#define OPT_UNSET 16
+/** IncludesNOEXEC directive */
#define OPT_INCNOEXEC 32
+/** SymLinksIfOwnerMatch directive */
#define OPT_SYM_OWNER 64
+/** MultiViews directive */
#define OPT_MULTI 128
+/** All directives */
#define OPT_ALL (OPT_INDEXES|OPT_INCLUDES|OPT_SYM_LINKS|OPT_EXECCGI)
+/** @} */
-/* options for get_remote_host() */
-/* REMOTE_HOST returns the hostname, or NULL if the hostname
+/**
+ * @defgroup get_remote_host Remote Host Resolution
+ * @ingroup APACHE_CORE_HTTPD
+ * @{
+ */
+/** REMOTE_HOST returns the hostname, or NULL if the hostname
* lookup fails. It will force a DNS lookup according to the
* HostnameLookups setting.
*/
#define REMOTE_HOST (0)
-/* REMOTE_NAME returns the hostname, or the dotted quad if the
+/** REMOTE_NAME returns the hostname, or the dotted quad if the
* hostname lookup fails. It will force a DNS lookup according
* to the HostnameLookups setting.
*/
#define REMOTE_NAME (1)
-/* REMOTE_NOLOOKUP is like REMOTE_NAME except that a DNS lookup is
+/** REMOTE_NOLOOKUP is like REMOTE_NAME except that a DNS lookup is
* never forced.
*/
#define REMOTE_NOLOOKUP (2)
-/* REMOTE_DOUBLE_REV will always force a DNS lookup, and also force
+/** REMOTE_DOUBLE_REV will always force a DNS lookup, and also force
* a double reverse lookup, regardless of the HostnameLookups
* setting. The result is the (double reverse checked) hostname,
* or NULL if any of the lookups fail.
*/
#define REMOTE_DOUBLE_REV (3)
+/** @} // get_remote_host */
+
+/** all of the requirements must be met */
#define SATISFY_ALL 0
+/** any of the requirements must be met */
#define SATISFY_ANY 1
+/** There are no applicable satisfy lines */
#define SATISFY_NOSPEC 2
-/* Make sure we don't write less than 8000 bytes at any one time.
+/** Make sure we don't write less than 8000 bytes at any one time.
*/
#define AP_MIN_BYTES_TO_WRITE 8000
-/* default maximum of internal redirects */
+/** default maximum of internal redirects */
# define AP_DEFAULT_MAX_INTERNAL_REDIRECTS 10
-/* default maximum subrequest nesting level */
+/** default maximum subrequest nesting level */
# define AP_DEFAULT_MAX_SUBREQ_DEPTH 10
/**
* Retrieve the value of Options for this request
* @param r The current request
* @return the Options bitmask
- * @deffunc int ap_allow_options(request_rec *r)
*/
AP_DECLARE(int) ap_allow_options(request_rec *r);
* Retrieve the value of the AllowOverride for this request
* @param r The current request
* @return the overrides bitmask
- * @deffunc int ap_allow_overrides(request_rec *r)
*/
AP_DECLARE(int) ap_allow_overrides(request_rec *r);
* Retrieve the value of the DefaultType directive, or text/plain if not set
* @param r The current request
* @return The default type
- * @deffunc const char *ap_default_type(request_rec *r)
*/
AP_DECLARE(const char *) ap_default_type(request_rec *r);
* @warning Don't use this! If your request went through a Userdir, or
* something like that, it'll screw you. But it's back-compatible...
* @return The document root
- * @deffunc const char *ap_document_root(request_rec *r)
*/
AP_DECLARE(const char *) ap_document_root(request_rec *r);
/**
* Lookup the remote client's DNS name or IP address
+ * @ingroup get_remote_host
* @param conn The current connection
* @param dir_config The directory config vector from the request
* @param type The type of lookup to perform. One of:
* @param str_is_ip unless NULL is passed, this will be set to non-zero on output when an IP address
* string is returned
* @return The remote hostname
- * @deffunc const char *ap_get_remote_host(conn_rec *conn, void *dir_config, int type, int *str_is_ip)
*/
AP_DECLARE(const char *) ap_get_remote_host(conn_rec *conn, void *dir_config, int type, int *str_is_ip);
* determined
* @param r The current request
* @return The user logged in to the client machine
- * @deffunc const char *ap_get_remote_logname(request_rec *r)
*/
AP_DECLARE(const char *) ap_get_remote_logname(request_rec *r);
* @param uri The path to the requested file
* @param r The current request
* @return A fully qualified URL
- * @deffunc char *ap_construct_url(apr_pool_t *p, const char *uri, request_rec *r)
*/
AP_DECLARE(char *) ap_construct_url(apr_pool_t *p, const char *uri, request_rec *r);
* Get the current server name from the request
* @param r The current request
* @return the server name
- * @deffunc const char *ap_get_server_name(request_rec *r)
*/
AP_DECLARE(const char *) ap_get_server_name(request_rec *r);
/**
* Get the current server port
- * @param The current request
+ * @param r The current request
* @return The server's port
- * @deffunc apr_port_t ap_get_server_port(const request_rec *r)
*/
AP_DECLARE(apr_port_t) ap_get_server_port(const request_rec *r);
* Return the limit on bytes in request msg body
* @param r The current request
* @return the maximum number of bytes in the request msg body
- * @deffunc apr_off_t ap_get_limit_req_body(const request_rec *r)
*/
AP_DECLARE(apr_off_t) ap_get_limit_req_body(const request_rec *r);
* Return the limit on bytes in XML request msg body
* @param r The current request
* @return the maximum number of bytes in XML request msg body
- * @deffunc size_t ap_get_limit_xml_body(const request_rec *r)
*/
AP_DECLARE(size_t) ap_get_limit_xml_body(const request_rec *r);
* Check if the current request is beyond the configured max. number of redirects or subrequests
* @param r The current request
* @return true (is exceeded) or false
- * @deffunc int ap_is_recursion_limit_exceeded(const request_rec *r)
*/
AP_DECLARE(int) ap_is_recursion_limit_exceeded(const request_rec *r);
* Check for a definition from the server command line
* @param name The define to check for
* @return 1 if defined, 0 otherwise
- * @deffunc int ap_exists_config_define(const char *name)
*/
AP_DECLARE(int) ap_exists_config_define(const char *name);
/* FIXME! See STATUS about how */
* to maintain common state for all of them in the core, and make it
* available to the other modules through interfaces.
*/
+
+/** @see require_line */
typedef struct require_line require_line;
-/** A structure to keep track of authorization requirements */
+/**
+ * @brief A structure to keep track of authorization requirements
+*/
struct require_line {
/** Where the require line is in the config file. */
apr_int64_t method_mask;
* Return the type of authorization required for this request
* @param r The current request
* @return The authorization required
- * @deffunc const char *ap_auth_type(request_rec *r)
*/
AP_DECLARE(const char *) ap_auth_type(request_rec *r);
* Return the current Authorization realm
* @param r The current request
* @return The current authorization realm
- * @deffunc const char *ap_auth_name(request_rec *r)
*/
AP_DECLARE(const char *) ap_auth_name(request_rec *r);
* SATISFY_ALL -- all of the requirements must be met.
* SATISFY_NOSPEC -- There are no applicable satisfy lines
* </pre>
- * @deffunc int ap_satisfies(request_rec *r)
*/
AP_DECLARE(int) ap_satisfies(request_rec *r);
* Retrieve information about all of the requires directives for this request
* @param r The current request
* @return An array of all requires directives for this request
- * @deffunc const apr_array_header_t *ap_requires(request_rec *r)
*/
AP_DECLARE(const apr_array_header_t *) ap_requires(request_rec *r);
#ifdef CORE_PRIVATE
-/*
+/**
* Core is also unlike other modules in being implemented in more than
* one file... so, data structures are declared here, even though most of
* the code that cares really is in http_core.c. Also, another accessor.
*/
-
AP_DECLARE_DATA extern module core_module;
-/* Per-request configuration */
-
+/**
+ * @brief Per-request configuration
+*/
typedef struct {
- /* bucket brigade used by getline for look-ahead and
+ /** bucket brigade used by getline for look-ahead and
* ap_get_client_block for holding left-over request body */
struct apr_bucket_brigade *bb;
- /* an array of per-request working data elements, accessed
+ /** an array of per-request working data elements, accessed
* by ID using ap_get_request_note()
* (Use ap_register_request_note() during initialization
* to add elements)
*/
void **notes;
- /* There is a script processor installed on the output filter chain,
+ /** There is a script processor installed on the output filter chain,
* so it needs the default_handler to deliver a (script) file into
* the chain so it can process it. Normally, default_handler only
* serves files on a GET request (assuming the file is actual content),
*/
int deliver_script;
- /* Custom response strings registered via ap_custom_response(),
+ /** Custom response strings registered via ap_custom_response(),
* or NULL; check per-dir config if nothing found here
*/
char **response_code_strings; /* from ap_custom_response(), not from
* ErrorDocument
*/
- /* Should addition of charset= be suppressed for this request?
+ /** Should addition of charset= be suppressed for this request?
*/
int suppress_charset;
} core_request_config;
*/
AP_DECLARE(void **) ap_get_request_note(request_rec *r, apr_size_t note_num);
-/* Per-directory configuration */
typedef unsigned char allow_options_t;
typedef unsigned char overrides_t;
#define ETAG_BACKWARD (ETAG_MTIME | ETAG_INODE | ETAG_SIZE)
#define ETAG_ALL (ETAG_MTIME | ETAG_INODE | ETAG_SIZE)
+/**
+ * @brief Server Signature Enumeration
+ */
typedef enum {
srv_sig_unset,
srv_sig_off,
srv_sig_withmail
} server_signature_e;
+/**
+ * @brief Per-directory configuration
+ */
typedef struct {
- /* path of the directory/regex/etc. see also d_is_fnmatch/absolute below */
+ /** path of the directory/regex/etc. see also d_is_fnmatch/absolute below */
char *d;
- /* the number of slashes in d */
+ /** the number of slashes in d */
unsigned d_components;
- /* If (opts & OPT_UNSET) then no absolute assignment to options has
+ /** If (opts & OPT_UNSET) then no absolute assignment to options has
* been made.
* invariant: (opts_add & opts_remove) == 0
* Which said another way means that the last relative (options + or -)
#endif
#endif /* !APACHE_HTTP_CORE_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file http_log.h
+ * @brief Apache Logging library
+ *
+ * @defgroup APACHE_CORE_LOG Logging library
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_HTTP_LOG_H
#define APACHE_HTTP_LOG_H
#include "apr_thread_proc.h"
-/**
- * @package Apache logging library
- */
-
#ifdef HAVE_SYSLOG
#include <syslog.h>
* @param plog The pool to allocate the logs from
* @param ptemp Pool used for temporary allocations
* @param s_main The main server
- * @tip ap_open_logs isn't expected to be used by modules, it is
+ * @note ap_open_logs isn't expected to be used by modules, it is
* an internal core function
*/
int ap_open_logs(apr_pool_t *pconf, apr_pool_t *plog,
* processes.
* @param p Not used
* @param s Not used
- * @tip ap_logs_child_init is not for use by modules; it is an
+ * @note ap_logs_child_init is not for use by modules; it is an
* internal core function
*/
void ap_logs_child_init(apr_pool_t *p, server_rec *s);
* @param s The server on which we are logging
* @param fmt The format string
* @param ... The arguments to use to fill out fmt.
- * @tip Use APLOG_MARK to fill out file and line
- * @tip If a request_rec is available, use that with ap_log_rerror()
+ * @note Use APLOG_MARK to fill out file and line
+ * @note If a request_rec is available, use that with ap_log_rerror()
* in preference to calling this function. Otherwise, if a conn_rec is
* available, use that with ap_log_cerror() in preference to calling
* this function.
* denial-of-service attack and other messy behavior. Instead, use a
* simple format string like "%s", followed by the string containing the
* untrusted data.
- * @deffunc void ap_log_error(const char *file, int line, int level, apr_status_t status, const server_rec *s, const char *fmt, ...)
*/
AP_DECLARE(void) ap_log_error(const char *file, int line, int level,
apr_status_t status, const server_rec *s,
* @param p The pool which we are logging for
* @param fmt The format string
* @param ... The arguments to use to fill out fmt.
- * @tip Use APLOG_MARK to fill out file and line
+ * @note Use APLOG_MARK to fill out file and line
* @warning It is VERY IMPORTANT that you not include any raw data from
* the network, such as the request-URI or request header fields, within
* the format string. Doing so makes the server vulnerable to a
* denial-of-service attack and other messy behavior. Instead, use a
* simple format string like "%s", followed by the string containing the
* untrusted data.
- * @deffunc void ap_log_perror(const char *file, int line, int level, apr_status_t status, apr_pool_t *p, const char *fmt, ...)
*/
AP_DECLARE(void) ap_log_perror(const char *file, int line, int level,
apr_status_t status, apr_pool_t *p,
* @param r The request which we are logging for
* @param fmt The format string
* @param ... The arguments to use to fill out fmt.
- * @tip Use APLOG_MARK to fill out file and line
+ * @note Use APLOG_MARK to fill out file and line
* @warning It is VERY IMPORTANT that you not include any raw data from
* the network, such as the request-URI or request header fields, within
* the format string. Doing so makes the server vulnerable to a
* denial-of-service attack and other messy behavior. Instead, use a
* simple format string like "%s", followed by the string containing the
* untrusted data.
- * @deffunc void ap_log_rerror(const char *file, int line, int level, apr_status_t status, const request_rec *r, const char *fmt, ...)
*/
AP_DECLARE(void) ap_log_rerror(const char *file, int line, int level,
apr_status_t status, const request_rec *r,
* @param c The connection which we are logging for
* @param fmt The format string
* @param ... The arguments to use to fill out fmt.
- * @tip Use APLOG_MARK to fill out file and line
- * @tip If a request_rec is available, use that with ap_log_rerror()
+ * @note Use APLOG_MARK to fill out file and line
+ * @note If a request_rec is available, use that with ap_log_rerror()
* in preference to calling this function.
* @warning It is VERY IMPORTANT that you not include any raw data from
* the network, such as the request-URI or request header fields, within
* denial-of-service attack and other messy behavior. Instead, use a
* simple format string like "%s", followed by the string containing the
* untrusted data.
- * @deffunc void ap_log_cerror(const char *file, int line, int level, apr_status_t status, const conn_rec *c, const char *fmt, ...)
*/
AP_DECLARE(void) ap_log_cerror(const char *file, int line, int level,
apr_status_t status, const conn_rec *c,
/**
* Convert stderr to the error log
* @param s The current server
- * @deffunc void ap_error_log2stderr(server_rec *s)
*/
AP_DECLARE(void) ap_error_log2stderr(server_rec *s);
*/
AP_DECLARE(apr_status_t) ap_read_pid(apr_pool_t *p, const char *filename, pid_t *mypid);
+/** @see piped_log */
typedef struct piped_log piped_log;
/**
- * The piped logging structure. Piped logs are used to move functionality
- * out of the main server. For example, log rotation is done with piped logs.
+ * @brief The piped logging structure.
+ *
+ * Piped logs are used to move functionality out of the main server.
+ * For example, log rotation is done with piped logs.
*/
struct piped_log {
/** The pool to use for the piped log */
* @param p The pool to allocate out of
* @param program The program to run in the logging process
* @return The piped log structure
- * @deffunc piped_log *ap_open_piped_log(apr_pool_t *p, const char *program)
*/
AP_DECLARE(piped_log *) ap_open_piped_log(apr_pool_t *p, const char *program);
/**
* Close the piped log and kill the logging process
* @param pl The piped log structure
- * @deffunc void ap_close_piped_log(piped_log *pl)
*/
AP_DECLARE(void) ap_close_piped_log(piped_log *pl);
* A macro to access the read side of the piped log pipe
* @param pl The piped log structure
* @return The native file descriptor
- * @deffunc ap_piped_log_read_fd(pl)
*/
#define ap_piped_log_read_fd(pl) ((pl)->fds[0])
* A macro to access the write side of the piped log pipe
* @param pl The piped log structure
* @return The native file descriptor
- * @deffunc ap_piped_log_read_fd(pl)
*/
#define ap_piped_log_write_fd(pl) ((pl)->fds[1])
+/**
+ * hook method to log error messages
+ * @ingroup hooks
+ * @param file The file in which this function is called
+ * @param line The line number on which this function is called
+ * @param level The level of this error message
+ * @param status The status code from the previous command
+ * @param s The server which we are logging for
+ * @param r The request which we are logging for
+ * @param pool Memory pool to allocate from
+ * @param errstr message to log
+ */
AP_DECLARE_HOOK(void, error_log, (const char *file, int line, int level,
apr_status_t status, const server_rec *s,
const request_rec *r, apr_pool_t *pool,
#endif
#endif /* !APACHE_HTTP_LOG_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file http_main.h
+ * @brief Command line options
+ *
+ * @defgroup APACHE_CORE_MAIN Command line options
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_HTTP_MAIN_H
#define APACHE_HTTP_MAIN_H
#include "apr_optional.h"
-/* AP_SERVER_BASEARGS is the command argument list parsed by http_main.c
+/** AP_SERVER_BASEARGS is the command argument list parsed by http_main.c
* in apr_getopt() format. Use this for default'ing args that the MPM
* can safely ignore and pass on from its rewrite_args() handler.
*/
extern "C" {
#endif
-/**
- * @package Command line options
- */
-
/** The name of the Apache executable */
AP_DECLARE_DATA extern const char *ap_server_argv0;
/** The global server's ServerRoot */
* effect the server based on command line options */
AP_DECLARE_DATA extern apr_array_header_t *ap_server_config_defines;
+/**
+ * An optional function to send signal to server on presence of '-k'
+ * command line argument.
+ * Called if MPM defines AP_MPM_WANT_SIGNAL_SERVER
+ * @param status The exit status after sending signal
+ * @param pool Memory pool to allocate from
+ */
APR_DECLARE_OPTIONAL_FN(int, ap_signal_server, (int *, apr_pool_t *));
#ifdef __cplusplus
#endif
#endif /* !APACHE_HTTP_MAIN_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file http_protocol.h
+ * @brief HTTP protocol handling
+ *
+ * @defgroup APACHE_CORE_PROTO HTTP Protocol Handling
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_HTTP_PROTOCOL_H
#define APACHE_HTTP_PROTOCOL_H
extern "C" {
#endif
-/**
- * @package HTTP protocol handling
- */
-
/**
* This hook allows modules to insert filters for the current error response
* @param r the current request
*/
AP_DECLARE_HOOK(void,insert_error_filter,(request_rec *r))
-/* This is an optimization. We keep a record of the filter_rec that
+/** This is an optimization. We keep a record of the filter_rec that
* stores the old_write filter, so that we can avoid strcmp's later.
*/
AP_DECLARE_DATA extern ap_filter_rec_t *ap_old_write_func;
* Called at completion of sending the response. It sends the terminating
* protocol information.
* @param r The current request
- * @deffunc void ap_finalize_request_protocol(request_rec *r)
*/
AP_DECLARE(void) ap_finalize_request_protocol(request_rec *r);
* to handle some other error. In that case, we print the default
* report for the first thing that went wrong, and more briefly report
* on the problem with the ErrorDocument.
- * @deffunc void ap_send_error_response(request_rec *r, int recursive_error)
*/
AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error);
* Set the content length for this request
* @param r The current request
* @param length The new content length
- * @deffunc void ap_set_content_length(request_rec *r, apr_off_t length)
*/
AP_DECLARE(void) ap_set_content_length(request_rec *r, apr_off_t length);
* Set the keepalive status for this request
* @param r The current request
* @return 1 if keepalive can be set, 0 otherwise
- * @deffunc int ap_set_keepalive(request_rec *r)
*/
AP_DECLARE(int) ap_set_keepalive(request_rec *r);
* @param r The current request
* @param mtime The last modified time
* @return the latest rational time.
- * @deffunc apr_time_t ap_rationalize_mtime(request_rec *r, apr_time_t mtime)
*/
AP_DECLARE(apr_time_t) ap_rationalize_mtime(request_rec *r, apr_time_t mtime);
* - then, if there are no parameters on type, add the default charset
* - return type
* @param r The current request
+ * @param type The content type
* @return The content-type
- * @deffunc const char *ap_make_content_type(request_rec *r, const char *type);
*/
AP_DECLARE(const char *) ap_make_content_type(request_rec *r,
const char *type);
#ifdef CORE_PRIVATE
/**
* Precompile metadata structures used by ap_make_content_type()
- * @param r The pool to use for allocations
- * @deffunc void ap_setup_make_content_type(apr_pool_t *pool)
+ * @param pool The pool to use for allocations
*/
AP_DECLARE(void) ap_setup_make_content_type(apr_pool_t *pool);
#endif /* CORE_PRIVATE */
* @param force_weak Force the entity tag to be weak - it could be modified
* again in as short an interval.
* @return The entity tag
- * @deffunc char *ap_make_etag(request_rec *r, int force_weak)
*/
AP_DECLARE(char *) ap_make_etag(request_rec *r, int force_weak);
/**
* Set the E-tag outgoing header
- * @param The current request
- * @deffunc void ap_set_etag(request_rec *r)
+ * @param r The current request
*/
AP_DECLARE(void) ap_set_etag(request_rec *r);
/**
* Set the last modified time for the file being sent
* @param r The current request
- * @deffunc void ap_set_last_modified(request_rec *r)
*/
AP_DECLARE(void) ap_set_last_modified(request_rec *r);
* @param r The current request
* @return OK if the response fulfills the condition GET rules, some
* other status code otherwise
- * @deffunc int ap_meets_conditions(request_rec *r)
*/
AP_DECLARE(int) ap_meets_conditions(request_rec *r);
* @param offset Offset into the file to start sending.
* @param length Amount of data to send
* @param nbytes Amount of data actually sent
- * @deffunc apr_status_t ap_send_fd(apr_file_t *fd, request_rec *r, apr_off_t offset, apr_size_t length, apr_size_t *nbytes);
*/
AP_DECLARE(apr_status_t) ap_send_fd(apr_file_t *fd, request_rec *r, apr_off_t offset,
apr_size_t length, apr_size_t *nbytes);
* @param offset The offset into the MMAP to start sending
* @param length The amount of data to send
* @return The number of bytes sent
- * @deffunc size_t ap_send_mmap(apr_mmap_t *mm, request_rec *r, size_t offset, size_t length)
*/
AP_DECLARE(size_t) ap_send_mmap(apr_mmap_t *mm, request_rec *r, size_t offset,
size_t length);
*/
AP_DECLARE(void) ap_method_registry_init(apr_pool_t *p);
-/*
+/**
* This is a convenience macro to ease with checking a mask
* against a method name.
*/
* allocated.
* @param nelts Number of preallocated extension slots
* @return Pointer to the newly created structure.
- * @deffunc ap_method_list_t ap_make_method_list(apr_pool_t *p, int nelts)
*/
AP_DECLARE(ap_method_list_t *) ap_make_method_list(apr_pool_t *p, int nelts);
+
+
+/**
+ * Copy a method list
+ *
+ * @param dest List to copy to
+ * @param src List to copy from
+ */
AP_DECLARE(void) ap_copy_method_list(ap_method_list_t *dest,
ap_method_list_t *src);
* @param method String containing the name of the method to check.
* @param l Pointer to a method list, such as cmd->methods_limited.
* @return 1 if method is in the list, otherwise 0
- * @deffunc int ap_method_in_list(const char *method, ap_method_list_t *l)
*/
AP_DECLARE(int) ap_method_in_list(ap_method_list_t *l, const char *method);
* @param method String containing the name of the method to check.
* @param l Pointer to a method list, such as cmd->methods_limited.
* @return None.
- * @deffunc void ap_method_in_list(ap_method_list_t *l, const char *method)
*/
AP_DECLARE(void) ap_method_list_add(ap_method_list_t *l, const char *method);
* @param l Pointer to a method list, such as cmd->methods_limited.
* @param method String containing the name of the method to remove.
* @return None.
- * @deffunc void ap_method_list_remove(ap_method_list_t *l, const char *method)
*/
AP_DECLARE(void) ap_method_list_remove(ap_method_list_t *l,
const char *method);
*
* @param l Pointer to a method list, such as cmd->methods_limited.
* @return None.
- * @deffunc void ap_clear_method_list(ap_method_list_t *l)
*/
AP_DECLARE(void) ap_clear_method_list(ap_method_list_t *l);
* Set the content type for this request (r->content_type).
* @param r The current request
* @param ct The new content type
- * @deffunc void ap_set_content_type(request_rec *r, const char* ct)
* @warning This function must be called to set r->content_type in order
* for the AddOutputFilterByType directive to work correctly.
*/
* @param c the character to output
* @param r the current request
* @return The number of bytes sent
- * @deffunc int ap_rputc(int c, request_rec *r)
*/
AP_DECLARE(int) ap_rputc(int c, request_rec *r);
* @param str The string to output
* @param r The current request
* @return The number of bytes sent
- * @deffunc int ap_rputs(const char *str, request_rec *r)
*/
AP_DECLARE(int) ap_rputs(const char *str, request_rec *r);
* @param nbyte The number of bytes to send from the buffer
* @param r The current request
* @return The number of bytes sent
- * @deffunc int ap_rwrite(const void *buf, int nbyte, request_rec *r)
*/
AP_DECLARE(int) ap_rwrite(const void *buf, int nbyte, request_rec *r);
* @param r The current request
* @param ... The strings to write
* @return The number of bytes sent
- * @deffunc int ap_rvputs(request_rec *r, ...)
*/
AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r,...);
* @param fmt The format string
* @param vlist The arguments to use to fill out the format string
* @return The number of bytes sent
- * @deffunc int ap_vrprintf(request_rec *r, const char *fmt, va_list vlist)
*/
AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, va_list vlist);
* @param fmt The format string
* @param ... The arguments to use to fill out the format string
* @return The number of bytes sent
- * @deffunc int ap_rprintf(request_rec *r, const char *fmt, ...)
*/
AP_DECLARE_NONSTD(int) ap_rprintf(request_rec *r, const char *fmt,...)
__attribute__((format(printf,2,3)));
+
/**
* Flush all of the data for the current request to the client
* @param r The current request
* @return The number of bytes sent
- * @deffunc int ap_rflush(request_rec *r)
*/
AP_DECLARE(int) ap_rflush(request_rec *r);
* (only use outside protocol.c is in getting them configured).
* @param status HTTP status code
* @return The index of the response
- * @deffunc int ap_index_of_response(int status)
*/
AP_DECLARE(int) ap_index_of_response(int status);
* passed, "500 Internal Server Error" will be returned.
* @param status The HTTP status code
* @return The Status-Line
- * @deffunc const char *ap_get_status_line(int status)
*/
AP_DECLARE(const char *) ap_get_status_line(int status);
* REQUEST_CHUNKED_DECHUNK If chunked, remove the chunks for me.
* </pre>
* @return either OK or an error code
- * @deffunc int ap_setup_client_block(request_rec *r, int read_policy)
*/
AP_DECLARE(int) ap_setup_client_block(request_rec *r, int read_policy);
* @warning Never call this function more than once.
* @param r The current request
* @return 0 if there is no message to read, 1 otherwise
- * @deffunc int ap_should_client_block(request_rec *r)
*/
AP_DECLARE(int) ap_should_client_block(request_rec *r);
* @param bufsiz The size of the buffer
* @return Number of bytes inserted into the buffer. When done reading, 0
* if EOF, or -1 if there was an error
- * @deffunc long ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz)
*/
AP_DECLARE(long) ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz);
* as the next request on a persistent connection.
* @param r The current request
* @return error status if request is malformed, OK otherwise
- * @deffunc int ap_discard_request_body(request_rec *r)
*/
AP_DECLARE(int) ap_discard_request_body(request_rec *r);
-
/**
* Setup the output headers so that the client knows how to authenticate
* itself the next time, if an authentication request failed. This function
* works for both basic and digest authentication
* @param r The current request
- * @deffunc void ap_note_auth_failure(request_rec *r)
*/
AP_DECLARE(void) ap_note_auth_failure(request_rec *r);
* itself the next time, if an authentication request failed. This function
* works only for basic authentication
* @param r The current request
- * @deffunc void ap_note_basic_auth_failure(request_rec *r)
*/
AP_DECLARE(void) ap_note_basic_auth_failure(request_rec *r);
* itself the next time, if an authentication request failed. This function
* works only for digest authentication
* @param r The current request
- * @deffunc void ap_note_digest_auth_failure(request_rec *r)
*/
AP_DECLARE(void) ap_note_digest_auth_failure(request_rec *r);
* seemed to be in use, or DECLINED if there was authentication but
* it wasn't Basic (in which case, the caller should presumably
* decline as well).
- * @deffunc int ap_get_basic_auth_pw(request_rec *r, const char **pw)
*/
AP_DECLARE(int) ap_get_basic_auth_pw(request_rec *r, const char **pw);
/**
* parse_uri: break apart the uri
- * @warning Side Effects: <pre>
- * - sets r->args to rest after '?' (or NULL if no '?')
- * - sets r->uri to request uri (without r->args part)
- * - sets r->hostname (if not set already) from request (scheme://host:port)
- * </pre>
+ * @warning Side Effects:
+ * @li sets r->args to rest after '?' (or NULL if no '?')
+ * @li sets r->uri to request uri (without r->args part)
+ * @li sets r->hostname (if not set already) from request (scheme://host:port)
* @param r The current request
* @param uri The uri to break apart
- * @deffunc void ap_parse_uri(request_rec *r, const char *uri)
*/
AP_CORE_DECLARE(void) ap_parse_uri(request_rec *r, const char *uri);
* @return The length of the line, if successful
* n, if the line is too big to fit in the buffer
* -1 for miscellaneous errors
- * @deffunc int ap_method_number_of(const char *method)
*/
AP_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int fold);
#define ap_rgetline(s, n, read, r, fold, bb) \
ap_rgetline_core((s), (n), (read), (r), (fold), (bb))
#endif
+
+/** @see ap_rgetline */
AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n,
apr_size_t *read,
request_rec *r, int fold,
* modules to make decisions based upon the input header fields
* @param r The current request
* @return OK or DECLINED
- * @deffunc ap_run_post_read_request(request_rec *r)
*/
AP_DECLARE_HOOK(int,post_read_request,(request_rec *r))
* over and above the normal server things.
* @param r The current request
* @return OK, DECLINED, or HTTP_...
- * @deffunc int ap_run_log_transaction(request_rec *r)
*/
AP_DECLARE_HOOK(int,log_transaction,(request_rec *r))
* allows Apache modules to easily extend the schemes that Apache understands
* @param r The current request
* @return The http scheme from the request
- * @deffunc const char *ap_run_http_scheme(const request_rec *r)
*/
AP_DECLARE_HOOK(const char *,http_scheme,(const request_rec *r))
* Return the default port from the current request
* @param r The current request
* @return The current port
- * @deffunc apr_port_t ap_run_default_port(const request_rec *r)
*/
AP_DECLARE_HOOK(apr_port_t,default_port,(const request_rec *r))
+/** @see ap_bucket_type_error */
typedef struct ap_bucket_error ap_bucket_error;
/**
- * A bucket referring to an HTTP error
+ * @struct ap_bucket_error
+ * @brief A bucket referring to an HTTP error
+ *
* This bucket can be passed down the filter stack to indicate that an
* HTTP error occurred while running a filter. In order for this bucket
* to be used successfully, it MUST be sent as the first bucket in the
const char *data;
};
+/** @see ap_bucket_type_error */
AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_error;
/**
* @param buf An optional error string to put in the bucket.
* @param p A pool to allocate out of.
* @return The new bucket, or NULL if allocation failed
- * @deffunc apr_bucket *ap_bucket_error_make(apr_bucket *b, int error, const char *buf, apr_pool_t *p)
*/
AP_DECLARE(apr_bucket *) ap_bucket_error_make(apr_bucket *b, int error,
const char *buf, apr_pool_t *p);
* @param p A pool to allocate the error string out of.
* @param list The bucket allocator from which to allocate the bucket
* @return The new bucket, or NULL if allocation failed
- * @deffunc apr_bucket *ap_bucket_error_create(int error, const char *buf, apr_pool_t *p, apr_bucket_alloc_t *list)
*/
AP_DECLARE(apr_bucket *) ap_bucket_error_create(int error, const char *buf,
apr_pool_t *p,
apr_bucket_brigade *);
AP_DECLARE_NONSTD(apr_status_t) ap_old_write_filter(ap_filter_t *f, apr_bucket_brigade *b);
-/*
- * Setting up the protocol fields for subsidiary requests...
- * Also, a wrapup function to keep the internal accounting straight.
+/**
+ * Sett up the protocol fields for subsidiary requests
+ * @param rnew New Sub Request
+ * @param r current request
*/
AP_DECLARE(void) ap_set_sub_req_protocol(request_rec *rnew, const request_rec *r);
+
+/**
+ * A wrapup function to keep the internal accounting straight.
+ * Indicates that there is no more content coming.
+ * @param sub_r Subrequest that is now compete
+ */
AP_DECLARE(void) ap_finalize_sub_req_protocol(request_rec *sub_r);
#ifdef __cplusplus
#endif
#endif /* !APACHE_HTTP_PROTOCOL_H */
+/** @} */
* limitations under the License.
*/
-#ifndef APACHE_HTTP_REQUEST_H
-#define APACHE_HTTP_REQUEST_H
-
-#include "apr_hooks.h"
-#include "util_filter.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define AP_SUBREQ_NO_ARGS 0
-#define AP_SUBREQ_MERGE_ARGS 1
-
/**
* @file http_request.h
* @brief Apache Request library
- */
-
-/* http_request.c is the code which handles the main line of request
+ *
+ * request.c is the code which handles the main line of request
* processing, once a request has been read in (finding the right per-
* directory configuration, building it if necessary, and calling all
* the module dispatch functions in the right order).
* about which was allocated in its apr_pool_t elsewhere before doing this.
*/
+#ifndef APACHE_HTTP_REQUEST_H
+#define APACHE_HTTP_REQUEST_H
+
+#include "apr_hooks.h"
+#include "util_filter.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define AP_SUBREQ_NO_ARGS 0
+#define AP_SUBREQ_MERGE_ARGS 1
+
/**
* An internal handler used by the ap_process_request, all subrequest mechanisms
* and the redirect mechanism.
* @param next_filter The first filter the sub_request should use. If this is
* NULL, it defaults to the first filter for the main request
* @return The new request record
- * @deffunc request_rec * ap_sub_req_lookup_uri(const char *new_uri, const request_rec *r)
*/
AP_DECLARE(request_rec *) ap_sub_req_lookup_uri(const char *new_uri,
const request_rec *r,
* @param next_filter The first filter the sub_request should use. If this is
* NULL, it defaults to the first filter for the main request
* @return The new request record
- * @deffunc request_rec * ap_sub_req_lookup_file(const char *new_file, const request_rec *r)
*/
AP_DECLARE(request_rec *) ap_sub_req_lookup_file(const char *new_file,
const request_rec *r,
* @param next_filter The first filter the sub_request should use. If this is
* NULL, it defaults to the first filter for the main request
* @return The new request record
- * @deffunc request_rec * ap_sub_req_lookup_dirent(apr_finfo_t *finfo, int subtype, const request_rec *r)
- * @tip The apr_dir_read flags value APR_FINFO_MIN|APR_FINFO_NAME flag is the
+ * @note The apr_dir_read flags value APR_FINFO_MIN|APR_FINFO_NAME flag is the
* minimum recommended query if the results will be passed to apr_dir_read.
* The file info passed must include the name, and must have the same relative
* directory as the current request.
* @param next_filter The first filter the sub_request should use. If this is
* NULL, it defaults to the first filter for the main request
* @return The new request record
- * @deffunc request_rec * ap_sub_req_method_uri(const char *method, const char *new_uri, const request_rec *r)
*/
AP_DECLARE(request_rec *) ap_sub_req_method_uri(const char *method,
const char *new_uri,
* has to be inserted at the end of a sub-requests filter stack.
* @param f The current filter
* @param bb The brigade to filter
- * @deffunc apr_status_t ap_sub_req_output_filter(ap_filter_t *f, apr_bucket_brigade *bb)
+ * @return status code
*/
AP_CORE_DECLARE_NONSTD(apr_status_t) ap_sub_req_output_filter(ap_filter_t *f,
apr_bucket_brigade *bb);
* Run the handler for the subrequest
* @param r The subrequest to run
* @return The return code for the subrequest
- * @deffunc int ap_run_sub_req(request_rec *r)
*/
AP_DECLARE(int) ap_run_sub_req(request_rec *r);
/**
* Free the memory associated with a subrequest
* @param r The subrequest to finish
- * @deffunc void ap_destroy_sub_req(request_rec *r)
*/
AP_DECLARE(void) ap_destroy_sub_req(request_rec *r);
* Redirect the current request to some other uri
* @param new_uri The URI to replace the current request with
* @param r The current request
- * @deffunc void ap_internal_redirect(const char *new_uri, request_rec *r)
*/
AP_DECLARE(void) ap_internal_redirect(const char *new_uri, request_rec *r);
* an internal redirect.
* @param new_uri The URI to replace the current request with.
* @param r The current request
- * @deffunc void ap_internal_redirect_handler(const char *new_uri, request_rec *r)
*/
AP_DECLARE(void) ap_internal_redirect_handler(const char *new_uri, request_rec *r);
* Redirect the current request to a sub_req, merging the pools
* @param sub_req A subrequest created from this request
* @param r The current request
- * @deffunc void ap_internal_fast_redirect(request_rec *sub_req, request_rec *r)
- * @tip the sub_req's pool will be merged into r's pool, be very careful
+ * @note the sub_req's pool will be merged into r's pool, be very careful
* not to destroy this subrequest, it will be destroyed with the main request!
*/
AP_DECLARE(void) ap_internal_fast_redirect(request_rec *sub_req, request_rec *r);
* is required for the current request
* @param r The current request
* @return 1 if authentication is required, 0 otherwise
- * @deffunc int ap_some_auth_required(request_rec *r)
*/
AP_DECLARE(int) ap_some_auth_required(request_rec *r);
* Determine if the current request is the main request or a subrequest
* @param r The current request
* @return 1 if this is the main request, 0 otherwise
- * @deffunc int ap_is_initial_req(request_rec *r)
*/
AP_DECLARE(int) ap_is_initial_req(request_rec *r);
* Function to set the r->mtime field to the specified value if it's later
* than what's already there.
* @param r The current request
- * @param dependency_time Time to set the mtime to
- * @deffunc void ap_update_mtime(request_rec *r, apr_time_t dependency_mtime)
+ * @param dependency_mtime Time to set the mtime to
*/
AP_DECLARE(void) ap_update_mtime(request_rec *r, apr_time_t dependency_mtime);
* @param ... A NULL-terminated list of strings, each identifying a
* method name to add.
* @return None.
- * @deffunc void ap_allow_methods(request_rec *r, int reset, ...)
*/
AP_DECLARE(void) ap_allow_methods(request_rec *r, int reset, ...);
* defined in httpd.h, terminated with a value of -1
* (e.g., "M_GET, M_POST, M_OPTIONS, -1")
* @return None.
- * @deffunc void ap_allow_standard_methods(request_rec *r, int reset, ...)
*/
AP_DECLARE(void) ap_allow_standard_methods(request_rec *r, int reset, ...);
#define REPLACE_ALLOW 1
#ifdef CORE_PRIVATE
-/* Function called by main.c to handle first-level request */
+/**
+ * Function called by main.c to handle first-level request
+ * @param r The current request
+ */
void ap_process_request(request_rec *);
+
/**
* Kill the current request
* @param type Why the request is dieing
* @param r The current request
- * @deffunc void ap_die(int type, request_rec *r)
*/
AP_DECLARE(void) ap_die(int type, request_rec *r);
#endif
/**
* This hook allow modules to set the per_dir_config based on their own
- * context (such as <Proxy > sections) and responds to contextless requests
+ * context (such as "<Proxy>" sections) and responds to contextless requests
* such as TRACE that need no security or filesystem mapping.
* based on the filesystem.
* @param r The current request
* limitations under the License.
*/
+/**
+ * @file http_vhost.h
+ * @brief Virtual Host package
+ *
+ * @defgroup APACHE_CORE_VHOST Virtual Host Package
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_HTTP_VHOST_H
#define APACHE_HTTP_VHOST_H
extern "C" {
#endif
-/**
- * @package Virtual Host package
- */
-
/**
* called before any config is read
* @param p Pool to allocate out of
* the run-time vhost lookups
* @param p The pool to allocate out of
* @param main_server The start of the virtual host list
- * @deffunc ap_fini_vhost_config(apr_pool_t *p, server_rec *main_server)
*/
AP_DECLARE(void) ap_fini_vhost_config(apr_pool_t *p, server_rec *main_server);
/**
- * handle addresses in <VirtualHost> statement
+ * handle addresses in "<VirtualHost>" statement
* @param p The pool to allocate out of
* @param hostname The hostname in the VirtualHost statement
* @param s The list of Virtual Hosts.
*/
const char *ap_parse_vhost_addrs(apr_pool_t *p, const char *hostname, server_rec *s);
-/* handle NameVirtualHost directive */
+/**
+ * handle NameVirtualHost directive
+ * @param cmd Command Parameters structure
+ * @param dummy NOT USED
+ * @param arg a host of the form "<address>[:port]"
+ */
const char *ap_set_name_virtual_host (cmd_parms *cmd, void *dummy,
const char *arg);
* @param port The port from the headers
* @return return 1 if the host:port matches any of the aliases of r->server,
* return 0 otherwise
- * @deffunc int ap_matches_request_vhost(request_rec *r, const char *host, apr_port_t port)
*/
AP_DECLARE(int) ap_matches_request_vhost(request_rec *r, const char *host,
apr_port_t port);
#endif
#endif /* !APACHE_HTTP_VHOST_H */
+/** @} */
* limitations under the License.
*/
-#ifndef APACHE_HTTPD_H
-#define APACHE_HTTPD_H
-
/**
* @file httpd.h
* @brief HTTP Daemon routines
+ *
+ * @defgroup APACHE Apache
+ *
+ * Top level group of which all other groups are a member
+ * @{
+ *
+ * @defgroup APACHE_MODS Apache Modules
+ * Top level group for Apache Modules
+ * @defgroup APACHE_OS Operating System Specific
+ * @defgroup APACHE_CORE Apache Core
+ * @{
+ * @defgroup APACHE_CORE_DAEMON HTTP Daemon Routine
+ * @{
*/
+#ifndef APACHE_HTTPD_H
+#define APACHE_HTTPD_H
+
/* XXX - We need to push more stuff to other .h files, or even .c files, to
* make this file smaller
*/
/* ----------------------------- config dir ------------------------------ */
-/* Define this to be the default server home dir. Most things later in this
+/** Define this to be the default server home dir. Most things later in this
* file with a relative pathname will have this added.
*/
#ifndef HTTPD_ROOT
#ifdef OS2
-/* Set default for OS/2 file system */
+/** Set default for OS/2 file system */
#define HTTPD_ROOT "/os2httpd"
#elif defined(WIN32)
-/* Set default for Windows file system */
+/** Set default for Windows file system */
#define HTTPD_ROOT "/apache"
#elif defined (BEOS)
-/* Set the default for BeOS */
+/** Set the default for BeOS */
#define HTTPD_ROOT "/boot/home/apache"
#elif defined (NETWARE)
-/* Set the default for NetWare */
+/** Set the default for NetWare */
#define HTTPD_ROOT "/apache"
#else
+/** Set for all other OSs */
#define HTTPD_ROOT "/usr/local/apache"
#endif
#endif /* HTTPD_ROOT */
*
*/
-/* Default location of documents. Can be overridden by the DocumentRoot
+/**
+ * Default location of documents. Can be overridden by the DocumentRoot
* directive.
*/
#ifndef DOCUMENT_LOCATION
/* Set default for OS/2 file system */
#define DOCUMENT_LOCATION HTTPD_ROOT "/docs"
#else
+/* Set default for non OS/2 file system */
#define DOCUMENT_LOCATION HTTPD_ROOT "/htdocs"
#endif
#endif /* DOCUMENT_LOCATION */
-/* Maximum number of dynamically loaded modules */
+/** Maximum number of dynamically loaded modules */
#ifndef DYNAMIC_MODULE_LIMIT
#define DYNAMIC_MODULE_LIMIT 128
#endif
-/* Default administrator's address */
+/** Default administrator's address */
#define DEFAULT_ADMIN "[no address given]"
-/* The name of the log files */
+/** The name of the log files */
#ifndef DEFAULT_ERRORLOG
#if defined(OS2) || defined(WIN32)
#define DEFAULT_ERRORLOG "logs/error.log"
#endif
#endif /* DEFAULT_ERRORLOG */
-/* Define this to be what your per-directory security files are called */
+/** Define this to be what your per-directory security files are called */
#ifndef DEFAULT_ACCESS_FNAME
#ifdef OS2
/* Set default for OS/2 file system */
#endif
#endif /* DEFAULT_ACCESS_FNAME */
-/* The name of the server config file */
+/** The name of the server config file */
#ifndef SERVER_CONFIG_FILE
#define SERVER_CONFIG_FILE "conf/httpd.conf"
#endif
-/* The default path for CGI scripts if none is currently set */
+/** The default path for CGI scripts if none is currently set */
#ifndef DEFAULT_PATH
#define DEFAULT_PATH "/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin"
#endif
-/* The path to the suExec wrapper, can be overridden in Configuration */
+/** The path to the suExec wrapper, can be overridden in Configuration */
#ifndef SUEXEC_BIN
#define SUEXEC_BIN HTTPD_ROOT "/bin/suexec"
#endif
-/* The timeout for waiting for messages */
+/** The timeout for waiting for messages */
#ifndef DEFAULT_TIMEOUT
#define DEFAULT_TIMEOUT 300
#endif
-/* The timeout for waiting for keepalive timeout until next request */
+/** The timeout for waiting for keepalive timeout until next request */
#ifndef DEFAULT_KEEPALIVE_TIMEOUT
#define DEFAULT_KEEPALIVE_TIMEOUT 5
#endif
-/* The number of requests to entertain per connection */
+/** The number of requests to entertain per connection */
#ifndef DEFAULT_KEEPALIVE
#define DEFAULT_KEEPALIVE 100
#endif
-/* Limits on the size of various request items. These limits primarily
+/*
+ * Limits on the size of various request items. These limits primarily
* exist to prevent simple denial-of-service attacks on a server based
* on misuse of the protocol. The recommended values will depend on the
* nature of the server resources -- CGI scripts and database backends
* DEFAULT_LIMIT_REQUEST_FIELDS can be modified or disabled (set = 0) by
* the server config directive LimitRequestFields.
*/
+
+/** default limit on bytes in Request-Line (Method+URI+HTTP-version) */
#ifndef DEFAULT_LIMIT_REQUEST_LINE
#define DEFAULT_LIMIT_REQUEST_LINE 8190
-#endif /* default limit on bytes in Request-Line (Method+URI+HTTP-version) */
+#endif
+/** default limit on bytes in any one header field */
#ifndef DEFAULT_LIMIT_REQUEST_FIELDSIZE
#define DEFAULT_LIMIT_REQUEST_FIELDSIZE 8190
-#endif /* default limit on bytes in any one header field */
+#endif
+/** default limit on number of request header fields */
#ifndef DEFAULT_LIMIT_REQUEST_FIELDS
#define DEFAULT_LIMIT_REQUEST_FIELDS 100
-#endif /* default limit on number of request header fields */
-
+#endif
/**
* The default default character set name to add if AddDefaultCharset is
"xhtml1-frameset.dtd\">"
/** Internal representation for a HTTP protocol number, e.g., HTTP/1.1 */
-
#define HTTP_VERSION(major,minor) (1000*(major)+(minor))
/** Major part of HTTP protocol */
#define HTTP_VERSION_MAJOR(number) ((number)/1000)
*/
#define ap_http_scheme(r) ap_run_http_scheme(r)
-/** The default string lengths */
+/** The default string length */
#define MAX_STRING_LEN HUGE_STRING_LEN
+
+/** The length of a Huge string */
#define HUGE_STRING_LEN 8192
/** The size of the server's internal read-write buffers */
/**
* @internal
- * modules should not used functions marked AP_CORE_DECLARE
+ * modules should not use functions marked AP_CORE_DECLARE
*/
#ifndef AP_CORE_DECLARE
# define AP_CORE_DECLARE AP_DECLARE
#endif
+
/**
* @internal
- * modules should not used functions marked AP_CORE_DECLARE_NONSTD
+ * modules should not use functions marked AP_CORE_DECLARE_NONSTD
*/
#ifndef AP_CORE_DECLARE_NONSTD
#endif
/**
- * The numeric version information is broken out into fields within this
+ * @brief The numeric version information is broken out into fields within this
* structure.
*/
typedef struct {
((x) == HTTP_SERVICE_UNAVAILABLE) || \
((x) == HTTP_NOT_IMPLEMENTED))
/** @} */
+
/**
* @defgroup Methods List of Methods recognized by the server
+ * @ingroup APACHE_CORE_DAEMON
* @{
- */
-/**
- * Methods recognized (but not necessarily handled) by the server.
+ *
+ * @brief Methods recognized (but not necessarily handled) by the server.
+ *
* These constants are used in bit shifting masks of size int, so it is
* unsafe to have more methods than bits in an int. HEAD == M_GET.
* This list must be tracked by the list in http_protocol.c in routine
* ap_method_name_of().
+ *
*/
-#define M_GET 0 /* RFC 2616: HTTP */
+
+#define M_GET 0 /** RFC 2616: HTTP */
#define M_PUT 1 /* : */
#define M_POST 2
#define M_DELETE 3
#define M_CONNECT 4
#define M_OPTIONS 5
-#define M_TRACE 6 /* RFC 2616: HTTP */
-#define M_PATCH 7 /* no rfc(!) ### remove this one? */
-#define M_PROPFIND 8 /* RFC 2518: WebDAV */
+#define M_TRACE 6 /** RFC 2616: HTTP */
+#define M_PATCH 7 /** no rfc(!) ### remove this one? */
+#define M_PROPFIND 8 /** RFC 2518: WebDAV */
#define M_PROPPATCH 9 /* : */
#define M_MKCOL 10
#define M_COPY 11
#define M_MOVE 12
#define M_LOCK 13
-#define M_UNLOCK 14 /* RFC 2518: WebDAV */
-#define M_VERSION_CONTROL 15 /* RFC 3253: WebDAV Versioning */
+#define M_UNLOCK 14 /** RFC 2518: WebDAV */
+#define M_VERSION_CONTROL 15 /** RFC 3253: WebDAV Versioning */
#define M_CHECKOUT 16 /* : */
#define M_UNCHECKOUT 17
#define M_CHECKIN 18
#define M_MKACTIVITY 23
#define M_BASELINE_CONTROL 24
#define M_MERGE 25
-#define M_INVALID 26 /* RFC 3253: WebDAV Versioning */
+#define M_INVALID 26 /** RFC 3253: WebDAV Versioning */
/**
* METHODS needs to be equal to the number of bits
/** @} */
+/** @see ap_method_list_t */
+typedef struct ap_method_list_t ap_method_list_t;
+
/**
- * Structure for handling HTTP methods. Methods known to the server are
- * accessed via a bitmask shortcut; extension methods are handled by
- * an array.
+ * @struct ap_method_list_t
+ * @brief Structure for handling HTTP methods.
+ *
+ * Methods known to the server are accessed via a bitmask shortcut;
+ * extension methods are handled by an array.
*/
-typedef struct ap_method_list_t ap_method_list_t;
struct ap_method_list_t {
- /* The bitmask used for known methods */
+ /** The bitmask used for known methods */
apr_int64_t method_mask;
- /* the array used for extension methods */
+ /** the array used for extension methods */
apr_array_header_t *method_list;
};
+
/**
* @defgroup module_magic Module Magic mime types
* @{
#define REQUEST_CHUNKED_ERROR 1
/** If chunked, remove the chunks for me. */
#define REQUEST_CHUNKED_DECHUNK 2
-/** @} */
+/** @} // values_request_rec_body */
/**
* @defgroup values_request_rec_used_path_info Possible values for request_rec.used_path_info
+ * @ingroup APACHE_CORE_DAEMON
* @{
* Possible values for request_rec.used_path_info:
*/
#define AP_REQ_REJECT_PATH_INFO 1
/** Module may chose to use the given path_info */
#define AP_REQ_DEFAULT_PATH_INFO 2
-/** @} */
+
+/** @} // values_request_rec_used_path_info */
+
/*
* Things which may vary per file-lookup WITHIN a request ---
*/
/**
- * This represents the result of calling htaccess; these are cached for
+ * @brief This represents the result of calling htaccess; these are cached for
* each request.
*/
struct htaccess_result {
/* This comes after we have defined the request_rec type */
#include "apr_uri.h"
-/** A structure that represents one process */
+/**
+ * @brief A structure that represents one process
+ */
struct process_rec {
/** Global pool. Cleared upon normal exit */
apr_pool_t *pool;
const char *short_name;
};
-/** A structure that represents the current request */
+/**
+ * @brief A structure that represents the current request
+ */
struct request_rec {
/** The pool associated with the request */
apr_pool_t *pool;
/* @} */
+/**
+ * @brief Enumeration of connection keepalive options
+ */
typedef enum {
AP_CONN_UNKNOWN,
AP_CONN_CLOSE,
AP_CONN_KEEPALIVE
} ap_conn_keepalive_e;
-/** Structure to store things which are per connection */
+/**
+ * @brief Structure to store things which are per connection
+ */
struct conn_rec {
/** Pool associated with this connection */
apr_pool_t *pool;
int data_in_input_filters;
};
+/**
+ * Enumeration of connection states
+ */
typedef enum {
CONN_STATE_CHECK_REQUEST_LINE_READABLE,
CONN_STATE_READ_REQUEST_LINE,
CONN_STATE_LINGER,
} conn_state_e;
+/**
+ * @brief A structure to contain connection state information
+ */
struct conn_state_t {
- APR_RING_ENTRY(conn_state_t) timeout_list;
- apr_time_t expiration_time;
+ /** APR_RING of expiration timeouts */
+ APR_RING_ENTRY(conn_state_t) timeout_list;
+ /** the expiration time of the next keepalive timeout */
+ apr_time_t expiration_time;
+ /** Current state of the connection */
conn_state_e state;
+ /** connection record this struct refers to */
conn_rec *c;
+ /** memory pool to allocate from */
apr_pool_t *p;
+ /** bucket allocator */
apr_bucket_alloc_t *bucket_alloc;
+ /** poll file decriptor information */
apr_pollfd_t pfd;
};
#define DEFAULT_VHOST_ADDR 0xfffffffful
-/** A structure to be used for Per-vhost config */
+/**
+ * @struct server_addr_rec
+ * @brief A structure to be used for Per-vhost config
+ */
typedef struct server_addr_rec server_addr_rec;
struct server_addr_rec {
/** The next server in the list */
apr_sockaddr_t *host_addr;
/** The bound port, for this server */
apr_port_t host_port;
- /** The name given in <VirtualHost> */
+ /** The name given in "<VirtualHost>" */
char *virthost;
};
-/** A structure to store information for each virtual server */
+/**
+ * @brief A structure to store information for each virtual server
+ */
struct server_rec {
/** The process this server is running in */
process_rec *process;
typedef struct core_output_filter_ctx {
apr_bucket_brigade *b;
- apr_pool_t *deferred_write_pool; /* subpool of c->pool used for resources
- * which may outlive the request
- */
+ /** subpool of c->pool used for resources
+ * which may outlive the request
+ */
+ apr_pool_t *deferred_write_pool;
} core_output_filter_ctx_t;
typedef struct core_filter_ctx {
* @return A copy of the characters up to the first stop character
*/
AP_DECLARE(char *) ap_getword(apr_pool_t *p, const char **line, char stop);
+
/**
* Get the characters until the first occurance of a specified character
* @param p The pool to allocate memory from
* @return The first word in the line
*/
AP_DECLARE(char *) ap_getword_white(apr_pool_t *p, const char **line);
+
/**
* Get the first word from a given string. A word is defined as all characters
* up to the first whitespace.
* @param p The pool to allocate memory from
* @param line The string to traverse
* @return The first word in the line
- * @note The same as ap_getword_white(), except it doesn't use const char **.
+ * @note The same as ap_getword_white(), except it doesn't use const char**
*/
AP_DECLARE(char *) ap_getword_white_nc(apr_pool_t *p, char **line);
/**
- * Get all characters from the first occurance of @a stop to the first '\0'
+ * Get all characters from the first occurance of @a stop to the first "\0"
* @param p The pool to allocate memory from
* @param line The line to traverse
* @param stop The character to start at
*/
AP_DECLARE(char *) ap_getword_nulls(apr_pool_t *p, const char **line,
char stop);
+
/**
- * Get all characters from the first occurance of @a stop to the first '\0'
+ * Get all characters from the first occurance of @a stop to the first "\0"
* @param p The pool to allocate memory from
* @param line The line to traverse
* @param stop The character to start at
* @return A copy of the string
*/
AP_DECLARE(char *) ap_getword_conf(apr_pool_t *p, const char **line);
+
/**
* Get the second word in the string paying attention to quoting
* @param p The pool to allocate from
* @return 0 on success, non-zero otherwise
*/
AP_DECLARE(int) ap_unescape_url(char *url);
+
/**
* Unescape a URL, but leaving %2f (slashes) escaped
* @param url The url to unescape
* @return 0 on success, non-zero otherwise
*/
AP_DECLARE(int) ap_unescape_url_keep2f(char *url);
+
/**
* Convert all double slashes to single slashes
* @param name The string to convert
* @return The converted URL
*/
AP_DECLARE(char *) ap_escape_path_segment(apr_pool_t *p, const char *s);
+
/**
* convert an OS path to a URL in an OS dependant way.
* @param p The pool to allocate from
* @return The converted URL
*/
AP_DECLARE(char *) ap_os_escape_path(apr_pool_t *p, const char *path, int partial);
+
/** @see ap_os_escape_path */
#define ap_escape_uri(ppool,path) ap_os_escape_path(ppool,path,1)
* Escape a string for logging into the error log (without a pool)
* @param dest The buffer to write to
* @param source The string to escape
- * @param buflen The buffer size for the escaped string (including \0)
+ * @param buflen The buffer size for the escaped string (including "\0")
* @return The len of the escaped string (always < maxlen)
*/
AP_DECLARE(apr_size_t) ap_escape_errorlog_item(char *dest, const char *source,
*/
AP_DECLARE(char *) ap_construct_server(apr_pool_t *p, const char *hostname,
apr_port_t port, const request_rec *r);
+
/**
* Escape a shell command
* @param p The pool to allocate from
* @param d The location to copy to
* @param s The location to copy from
* @param n The number of directories to copy
- * @return value is the ever useful pointer to the trailing \0 of d
+ * @return value is the ever useful pointer to the trailing "\0" of d
* @note on platforms with drive letters, n = 0 returns the "/" root,
* whereas n = 1 returns the "d:/" root. On all other platforms, n = 0
* returns the empty string. */
* @param dir The directory name
* @param f The filename
* @return A copy of the full path
- * @tip Never consider using this function if you are dealing with filesystem
+ * @note Never consider using this function if you are dealing with filesystem
* names that need to remain canonical, unless you are merging an apr_dir_read
* path and returned filename. Otherwise, the result is not canonical.
*/
* Test if the given path has an an absolute path.
* @param p The pool to allocate from
* @param dir The directory name
- * @tip The converse is not necessarily true, some OS's (Win32/OS2/Netware) have
+ * @note The converse is not necessarily true, some OS's (Win32/OS2/Netware) have
* multiple forms of absolute paths. This only reports if the path is absolute
* in a canonical sense.
*/
* @return 1 if the two strings match, 0 otherwise
*/
AP_DECLARE(int) ap_strcmp_match(const char *str, const char *expected);
+
/**
* Determine if a string matches a patterm containing the wildcards '?' or '*',
* ignoring case
/**
* Encode a string into memory allocated from a pool in base 64 format
* @param p The pool to allocate from
- * @param strin The plaintext string
+ * @param string The plaintext string
* @return The encoded string
*/
AP_DECLARE(char *) ap_pbase64encode(apr_pool_t *p, char *string);
-
/**
* Compile a regular expression to be used later
* @param p The pool to allocate from
* @param pattern the regular expression to compile
* @param cflags The bitwise or of one or more of the following:
- * @li #REG_EXTENDED - Use POSIX extended Regular Expressions
- * @li #REG_ICASE - Ignore case
- * @li #REG_NOSUB - Support for substring addressing of matches
+ * @li REG_EXTENDED - Use POSIX extended Regular Expressions
+ * @li REG_ICASE - Ignore case
+ * @li REG_NOSUB - Support for substring addressing of matches
* not required
- * @li #REG_NEWLINE - Match-any-character operators don't match new-line
+ * @li REG_NEWLINE - Match-any-character operators don't match new-line
* @return The compiled regular expression
*/
AP_DECLARE(ap_regex_t *) ap_pregcomp(apr_pool_t *p, const char *pattern,
int cflags);
-
+
/**
* Free the memory associated with a compiled regular expression
* @param p The pool the regex was allocated from
AP_DECLARE(void) ap_log_assert(const char *szExp, const char *szFile, int nLine)
__attribute__((noreturn));
-/** @internal */
+/**
+ * @internal Internal Assert function
+ */
#define ap_assert(exp) ((exp) ? (void)0 : ap_log_assert(#exp,__FILE__,__LINE__))
/**
* Use AP_DEBUG_ASSERT() if the condition should only be checked when AP_DEBUG
* is defined.
*/
-
#ifdef AP_DEBUG
#define AP_DEBUG_ASSERT(exp) ap_assert(exp)
#else
#endif
/**
- * @defgroup stopsignal flags which indicate places where the sever should stop for debugging.
+ * @defgroup stopsignal Flags which indicate places where the sever should stop for debugging.
* @{
* A set of flags which indicate places where the server should raise(SIGSTOP).
* This is useful for debugging, because you can then attach to that process
#endif
#endif /* !APACHE_HTTPD_H */
+
+/** @} //APACHE Daemon */
+/** @} //APACHE Core */
+/** @} //APACHE super group */
+
* does not belong in src/os/unix
*/
+/**
+ * @file mpm_common.h
+ * @brief Multi-Processing Modules functions
+ *
+ * @defgroup APACHE_MPM Multi-Processing Modules
+ * @ingroup APACHE
+ * @{
+ */
+
#ifndef APACHE_MPM_COMMON_H
#define APACHE_MPM_COMMON_H
extern "C" {
#endif
-/**
- * @package Multi-Processing Modules functions
- */
-
/* The maximum length of the queue of pending connections, as defined
* by listen(2). Under some systems, it should be increased if you
* are experiencing a heavy TCP SYN flood attack.
#endif
#endif /* !APACHE_MPM_COMMON_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file scoreboard.h
+ * @brief Apache scoreboard library
+ */
+
#ifndef APACHE_SCOREBOARD_H
#define APACHE_SCOREBOARD_H
* limitations under the License.
*/
+/**
+ * @file util_cfgtree.h
+ * @brief Config Tree Package
+ *
+ * @defgroup APACHE_CORE_CONFIG_TREE Config Tree Package
+ * @ingroup APACHE_CORE_CONFIG
+ * @{
+ */
+
#ifndef AP_CONFTREE_H
#define AP_CONFTREE_H
#include "ap_config.h"
-/**
- * @package Config Tree Package
- */
-
typedef struct ap_directive_t ap_directive_t;
/**
- * Structure used to build the config tree. The config tree only stores
+ * @brief Structure used to build the config tree.
+ *
+ * The config tree only stores
* the directives that will be active in the running server. Directives
* that contain other directions, such as <Directory ...> cause a sub-level
* to be created, where the included directives are stored. The closing
ap_directive_t *toadd, int child);
#endif
+/** @} */
* limitations under the License.
*/
+/**
+ * @file util_charset.h
+ * @brief charset conversion
+ *
+ * @defgroup APACHE_CORE_CHARSET Charset Conversion
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_UTIL_CHARSET_H
#define APACHE_UTIL_CHARSET_H
extern "C" {
#endif
-/**
- * @package charset conversion
- */
#include "apr.h"
#if APR_CHARSET_EBCDIC
#endif
#endif /* !APACHE_UTIL_CHARSET_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file util_ebcdic.h
+ * @brief Utilities for EBCDIC conversion
+ *
+ * @defgroup APACHE_CORE_EBCDIC Utilities for EBCDIC conversion
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_UTIL_EBCDIC_H
#define APACHE_UTIL_EBCDIC_H
#include "httpd.h"
#include "util_charset.h"
-/**
- * @package Utilities for EBCDIC conversion
- */
-
#if APR_CHARSET_EBCDIC
/**
#endif
#endif /* !APACHE_UTIL_EBCDIC_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file util_filter.h
+ * @brief Apache filter library
+ */
+
#ifndef AP_FILTER_H
#define AP_FILTER_H
extern "C" {
#endif
-/**
- * @file util_filter.h
- * @brief Apache filter library
- */
-
/** Returned by the bottom-most filter if no data was written.
* @see ap_pass_brigade(). */
#define AP_NOBODY_WROTE -1
#define AP_FILTER_ERROR -3
/**
- * input filtering modes
+ * @brief input filtering modes
*/
typedef enum {
/** The filter should return at most readbytes data. */
} ap_input_mode_t;
/**
- * @defgroup filter FILTER CHAIN
+ * @defgroup APACHE_CORE_FILTER Filter Chain
+ * @ingroup APACHE_CORE
*
* Filters operate using a "chaining" mechanism. The filters are chained
* together into a sequence. When output is generated, it is passed through
typedef struct ap_filter_provider_t ap_filter_provider_t;
/**
- * This structure is used for recording information about the
+ * @brief This structure is used for recording information about the
* registered filters. It associates a name with the filter's callback
* and filter type.
*
};
/**
- * The representation of a filter chain. Each request has a list
+ * @brief The representation of a filter chain.
+ *
+ * Each request has a list
* of these structures which are called in turn to filter the data. Sub
* requests get an exact copy of the main requests filter chain.
*/
* limitations under the License.
*/
+/**
+ * @file util_ldap.h
+ * @brief Apache LDAP library
+ */
+
#ifndef UTIL_LDAP_H
#define UTIL_LDAP_H
* limitations under the License.
*/
+/**
+ * @file util_md5.h
+ * @brief Apache MD5 library
+ *
+ * @defgroup APACHE_CORE_MD5 MD5 Package Library
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_UTIL_MD5_H
#define APACHE_UTIL_MD5_H
extern "C" {
#endif
-/**
- * @package Apache MD5 library
- */
-
#include "apr_md5.h"
/**
#endif
#endif /* !APACHE_UTIL_MD5_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file util_script.h
+ * @brief Apache script tools
+ *
+ * @defgroup APACHE_CORE_SCRIPT Script Tools
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_UTIL_SCRIPT_H
#define APACHE_UTIL_SCRIPT_H
extern "C" {
#endif
-/**
- * @package Apache script tools
- */
-
#ifndef APACHE_ARG_MAX
#ifdef _POSIX_ARG_MAX
#define APACHE_ARG_MAX _POSIX_ARG_MAX
#endif
#endif /* !APACHE_UTIL_SCRIPT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file util_time.h
+ * @brief Apache date-time handling functions
+ *
+ * @defgroup APACHE_CORE_TIME Date-time handling functions
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef APACHE_UTIL_TIME_H
#define APACHE_UTIL_TIME_H
extern "C" {
#endif
-/**
- * @package Apache date-time handling functions
- */
-
/* Maximum delta from the current time, in seconds, for a past time
* to qualify as "recent" for use in the ap_explode_recent_*() functions:
* (Must be a power of two minus one!)
#endif
#endif /* !APACHE_UTIL_TIME_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file util_xml.h
+ * @brief Apache XML library
+ *
+ * @defgroup APACHE_CORE_XML XML Library
+ * @ingroup APACHE_CORE
+ * @{
+ */
+
#ifndef UTIL_XML_H
#define UTIL_XML_H
extern "C" {
#endif
-/**
- * @package Apache XML library
- */
-
/**
* Get XML post data and parse it
* @param r The current request
#endif
#endif /* UTIL_XML_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mod_auth.h
+ * @brief uthentication Extension Module for Apache
+ *
+ * @defgroup MOD_AUTH mod_auth
+ * @ingroup APACHE_MODS
+ */
+
#ifndef APACHE_MOD_AUTH_H
#define APACHE_MOD_AUTH_H
* limitations under the License.
*/
+/**
+ * @file mod_isapi.h
+ * @brief ISAPI module extension to Apache
+ *
+ * @defgroup MOD_ISAPI mod_isapi
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef MOD_ISAPI_H
#define MOD_ISAPI_H
#endif
#endif /* !MOD_ISAPI_H */
+/** @} */
+
* limitations under the License.
*/
+/**
+ * @file cache_cache.h
+ * @brief Cache Cache Functions
+ *
+ * @defgroup Cache_cache Cache Functions
+ * @ingroup MOD_CACHE
+ * @{
+ */
+
#ifndef CACHE_CACHE_H
#define CACHE_CACHE_H
#include "mod_cache.h"
-/**
- * @file cache_hash.h
- * @brief Cache Cache Functions
- */
-
-/**
- * @defgroup Cache_cache Cache Functions
- * @ingroup CACHE
- * @{
- */
/** ADT for the cache */
typedef struct cache_cache_t cache_cache_t;
* @param entry the actual entry (from a find)
*/
CACHE_DECLARE(apr_status_t) cache_remove(cache_cache_t* c, void *entry);
-/** @} */
#ifdef __cplusplus
}
#endif
#endif /* !CACHE_CACHE_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file cache_hash.h
+ * @brief Cache Hash Tables
+ *
+ * @defgroup Cache_Hash Hash Tables
+ * @ingroup MOD_CACHE
+ * @{
+ */
+
#ifndef CACHE_HASH_H
#define CACHE_HASH_H
#include "mod_cache.h"
-/**
- * @file cache_hash.h
- * @brief Cache Hash Tables
- */
-
-/**
- * @defgroup Cache_Hash Hash Tables
- * @ingroup CACHE
- * @{
- */
-
/**
* When passing a key to cache_hash_set or cache_hash_get, this value can be
* passed to indicate a string-valued key, and have cache_hash compute the
* limitations under the License.
*/
+/**
+ * @file cache_pqueue.h
+ * @brief Cache Priority Queue function declarations
+ *
+ * @defgroup MOD_CACHE_QUEUE Priority Queue
+ * @ingroup MOD_CACHE
+ * @{
+ */
+
#ifndef CACHE_PQUEUE_H
#define CACHE_PQUEUE_H
#endif
#endif /* !CACHE_PQUEUE_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mod_cache.h
+ * @brief Main include file for the Apache Transparent Cache
+ *
+ * @defgroup MOD_CACHE mod_cache
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef MOD_CACHE_H
#define MOD_CACHE_H
-/*
- * Main include file for the Apache Transparent Cache
- */
-
#define CORE_PRIVATE
#include "apr_hooks.h"
#endif /*MOD_CACHE_H*/
+/** @} */
* limitations under the License.
*/
-/*
-** Declarations for the filesystem repository implementation
-*/
+/**
+ * @file repos.h
+ * @brief Declarations for the filesystem repository implementation
+ *
+ * @addtogroup MOD_DAV
+ * @{
+ */
#ifndef _DAV_FS_REPOS_H_
#define _DAV_FS_REPOS_H_
void dav_fs_register(apr_pool_t *p);
#endif /* _DAV_FS_REPOS_H_ */
+/** @} */
+
* limitations under the License.
*/
-/*
-** Declarations for the generic lock implementation
-*/
+/**
+ * @file locks.h
+ * @brief Declarations for the generic lock implementation
+ *
+ * @addtogroup MOD_DAV
+ * @{
+ */
#ifndef _DAV_LOCK_LOCKS_H_
#define _DAV_LOCK_LOCKS_H_
const char *dav_generic_get_lockdb_path(const request_rec *r);
#endif /* _DAV_LOCK_LOCKS_H_ */
+/** @} */
+
* limitations under the License.
*/
-/*
-** DAV extension module for Apache 2.0.*
-*/
+/**
+ * @file mod_dav.h
+ * @brief DAV extension module for Apache 2.0.*
+ *
+ * @defgroup MOD_DAV mod_dav
+ * @ingroup APACHE_MODS
+ * @{
+ */
#ifndef _MOD_DAV_H_
#define _MOD_DAV_H_
#endif
#endif /* _MOD_DAV_H_ */
+/** @} */
+
* limitations under the License.
*/
-/* Overview of what this is and does:
+/**
+ * @file mod_dbd.h
+ * @brief Database Acces Extension Module for Apache
+ *
+ * Overview of what this is and does:
* http://www.apache.org/~niq/dbd.html
* or
* http://apache.webthing.com/database/
+ *
+ * @defgroup MOD_DBD mod_dbd
+ * @ingroup APACHE_MODS
+ * @{
*/
+
#ifndef DBD_H
#define DBD_H
APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));
#endif
+/** @} */
+
module AP_MODULE_DECLARE_DATA filter_module;
/**
- * ap_filter_provider_t is a filter provider, as defined and implemented
- * by mod_filter. The struct is a linked list, with dispatch criteria
+ * @brief is a filter provider, as defined and implemented by mod_filter.
+ *
+ * The struct is a linked list, with dispatch criteria
* defined for each filter. The provider implementation itself is a
* (2.0-compatible) ap_filter_rec_t* frec.
*/
* limitations under the License.
*/
+/**
+ * @file mod_include.h
+ * @brief Server Side Include Filter Extension Module for Apache
+ *
+ * @defgroup MOD_INCLUDE mod_include
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef _MOD_INCLUDE_H
#define _MOD_INCLUDE_H 1
(char *tag, include_handler_fn_t *func));
#endif /* MOD_INCLUDE */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mod_cgi.h
+ * @brief CGI Script Execution Extension Module for Apache
+ *
+ * @defgroup MOD_CGI mod_cgi
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef _MOD_CGI_H
#define _MOD_CGI_H 1
cgi_exec_info_t *e_info));
#endif /* _MOD_CGI_H */
+/** @} */
+
* limitations under the License.
*/
+/**
+ * @file mod_status.h
+ * @brief Status Report Extension Module to Apache
+ *
+ * @defgroup MOD_STATUS mod_status
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef MOD_STATUS_H
#define MOD_STATUS_H
APR_DECLARE_EXTERNAL_HOOK(ap, STATUS, int, status_hook,
(request_rec *r, int flags))
#endif
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mod_suexec.h
+ * @brief SuExec Extension Module for Apache
+ *
+ * @defgroup MOD_SUEXEC mod_suexec
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#include "unixd.h"
typedef struct {
int active;
} suexec_config_t;
+/** @}*/
* limitations under the License.
*/
+
+/**
+ * @file mod_core.h
+ * @brief mod_core private header file
+ *
+ * @defgroup MOD_CORE mod_core
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef MOD_CORE_H
#define MOD_CORE_H
extern "C" {
#endif
-/**
- * @package mod_core private header file
- */
-
/* Handles for core filters */
extern AP_DECLARE_DATA ap_filter_rec_t *ap_http_input_filter_handle;
extern AP_DECLARE_DATA ap_filter_rec_t *ap_http_header_filter_handle;
#endif
#endif /* !MOD_CORE_H */
+/** @} */
#ifndef APU_LDAP_CACHE_H
#define APU_LDAP_CACHE_H
-/*
- * This switches LDAP support on or off.
+/**
+ * @file util_ldap_cache.h
+ * @brief This switches LDAP support on or off.
*/
/* this whole thing disappears if LDAP is not enabled */
* limitations under the License.
*/
+/**
+ * @file mod_log_config.h
+ * @brief Logging Configuration Extension Module for Apache
+ *
+ * @defgroup MOD_LOG_CONFIG mod_log_config
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#include "apr_optional.h"
#include "httpd.h"
#include "scoreboard.h"
APR_DECLARE_OPTIONAL_FN(ap_log_writer*, ap_log_set_writer, (ap_log_writer* func));
#endif /* MOD_LOG_CONFIG */
+/** @} */
+
* limitations under the License.
*/
+/**
+ * @file mod_rewrite.h
+ * @brief Rewrite Extension module for Apache
+ *
+ * @defgroup MOD_REWRITE mod_rewrite
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef MOD_REWRITE_H
#define MOD_REWRITE_H 1
(char *name, rewrite_mapfunc_t *func));
#endif /* MOD_REWRITE_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mod_so.h
+ * @brief Shared Object Loader Extension Module for Apache
+ *
+ * @defgroup MOD_SO mod_so
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef MOD_SO_H
#define MOD_SO_H 1
(server_rec *s, const char *modname));
#endif /* MOD_SO_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file ajp.h
+ * @brief Apache Jserv Protocol
+ *
+ * @defgroup AJP_defines AJP definitions
+ * @ingroup MOD_PROXY
+ * @{
+ */
+
#ifndef AJP_H
#define AJP_H
int server_side;
};
-/**
- * @defgroup AJP_defines AJP definitions
- * @{
- */
/**
* Signature for the messages sent from Apache to tomcat
*/
/**
* @defgroup AJP_api AJP API functions
+ * @ingroup MOD_PROXY
* @{
*/
/**
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+/**
+ * @file ajp_header.h
+ * @brief AJP defines
+ *
+ * @addtogroup AJP_defines
+ * @{
+ */
+
#ifndef AJP_HEADER_H
#define AJP_HEADER_H
#define SC_RES_HEADERS_NUM 11
#endif /* AJP_HEADER_H */
+/** @} */
#ifndef MOD_PROXY_H
#define MOD_PROXY_H
-/*
- * Main include file for the Apache proxy
+/**
+ * @file mod_proxy.h
+ * @brief Proxy Extension Module for Apache
+ *
+ * @defgroup MOD_PROXY mod_proxy
+ * @ingroup APACHE_MODS
+ * @{
*/
/*
extern int PROXY_DECLARE_DATA proxy_lb_workers;
#endif /*MOD_PROXY_H*/
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mod_ssl.h
+ * @brief SSL extension module for Apache
+ *
+ * @defgroup MOD_SSL mod_ssl
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
#ifndef __MOD_SSL_H__
#define __MOD_SSL_H__
#include "httpd.h"
#include "apr_optional.h"
-/* The ssl_var_lookup() optional function retrieves SSL environment
+/** The ssl_var_lookup() optional function retrieves SSL environment
* variables. */
APR_DECLARE_OPTIONAL_FN(char *, ssl_var_lookup,
(apr_pool_t *, server_rec *,
conn_rec *, request_rec *,
char *));
-/* The ssl_ext_lookup() optional function retrieves the value of a SSL
+/** The ssl_ext_lookup() optional function retrieves the value of a SSL
* certificate X.509 extension. The client certificate is used if
* peer is non-zero; the server certificate is used otherwise. The
* oidnum parameter specifies the numeric OID (e.g. "1.2.3.4") of the
(apr_pool_t *p, conn_rec *c, int peer,
const char *oidnum));
-/* An optional function which returns non-zero if the given connection
+/** An optional function which returns non-zero if the given connection
* is using SSL/TLS. */
APR_DECLARE_OPTIONAL_FN(int, ssl_is_https, (conn_rec *));
-/* The ssl_proxy_enable() and ssl_engine_disable() optional functions
+/** The ssl_proxy_enable() and ssl_engine_disable() optional functions
* are used by mod_proxy to enable use of SSL for outgoing
* connections. */
APR_DECLARE_OPTIONAL_FN(apr_array_header_t *, ssl_extlist_by_oid, (request_rec *r, const char *oidstr));
#endif /* __MOD_SSL_H__ */
+/** @} */
* limitations under the License.
*/
-/* _ _
- * _ __ ___ ___ __| | ___ ___| | mod_ssl
- * | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL
- * | | | | | | (_) | (_| | \__ \__ \ |
- * |_| |_| |_|\___/ \__,_|___|___/___/_|
- * |_____|
- * ssl_expr.h
- * Expression Handling (Header)
+/**
+ * @verbatim
+ _ _
+ _ __ ___ ___ __| | ___ ___| | mod_ssl
+ | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL
+ | | | | | | (_) | (_| | \__ \__ \ |
+ |_| |_| |_|\___/ \__,_|___|___/___/_|
+ |_____|
+ @endverbatim
+ * @file ssl_expr.h
+ * @brief Expression Handling (Header).
+ * ``May all your PUSHes be POPed.''
+ *
+ * @defgroup MOD_SSL_EXPR Expression Handling
+ * @ingroup MOD_SSL
+ * @{
*/
- /* ``May all your PUSHes be POPed.'' */
#ifndef __SSL_EXPR_H__
#define __SSL_EXPR_H__
extern BOOL ssl_expr_eval(request_rec *, ssl_expr *);
#endif /* __SSL_EXPR_H__ */
+/** @} */
+
#ifndef SSL_PRIVATE_H
#define SSL_PRIVATE_H
-/*
- * Internal interfaces private to mod_ssl.
+/**
+ * @file ssl_private.h
+ * @brief Internal interfaces private to mod_ssl.
+ *
+ * @defgroup MOD_SSL_PRIVATE Private
+ * @ingroup MOD_SSL
+ * @{
*/
-/* Apache headers */
+/** Apache headers */
#include "httpd.h"
#include "http_config.h"
#include "http_core.h"
#define MOD_SSL_VERSION AP_SERVER_BASEREVISION
-/* mod_ssl headers */
+/** mod_ssl headers */
#include "ssl_toolkit_compat.h"
#include "ssl_expr.h"
#include "ssl_util_ssl.h"
-/* The #ifdef macros are only defined AFTER including the above
+/** The #ifdef macros are only defined AFTER including the above
* therefore we cannot include these system files at the top :-(
*/
#if APR_HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#if APR_HAVE_UNISTD_H
-#include <unistd.h> /* needed for STDIN_FILENO et.al., at least on FreeBSD */
+#include <unistd.h> /** needed for STDIN_FILENO et.al., at least on FreeBSD */
#endif
-/*
+/**
* Provide reasonable default for some defines
*/
#ifndef FALSE
#define RAND_MAX INT_MAX
#endif
-/*
+/**
* Provide reasonable defines for some types
*/
#ifndef BOOL
#define UCHAR unsigned char
#endif
-/*
+/**
* Provide useful shorthands
*/
#define strEQ(s1,s2) (strcmp(s1,s2) == 0)
#define myCtxVarSet(mc,num,val) mc->rCtx.pV##num = val
#define myCtxVarGet(mc,num,type) (type)(mc->rCtx.pV##num)
-/*
+/**
* Defaults for the configuration
*/
#ifndef SSL_SESSION_CACHE_TIMEOUT
#define SSL_SESSION_CACHE_TIMEOUT 300
#endif
-/*
+/**
* Support for MM library
*/
#define SSL_MM_FILE_MODE ( APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD )
-/*
+/**
* Support for DBM library
*/
#define SSL_DBM_FILE_MODE ( APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD )
#endif
#endif
-/*
+/**
* Define the certificate algorithm types
*/
#define SSL_AIDX_MAX (2)
-/*
+/**
* Define IDs for the temporary RSA keys and DH params
*/
#define SSL_TMP_KEY_DH_1024 (3)
#define SSL_TMP_KEY_MAX (4)
-/*
+/**
* Define the SSL options
*/
#define SSL_OPT_NONE (0)
#define SSL_OPT_ALL (SSL_OPT_STDENVVARS|SSL_OPT_EXPORTCERTDATA|SSL_OPT_FAKEBASICAUTH|SSL_OPT_STRICTREQUIRE|SSL_OPT_OPTRENEGOTIATE)
typedef int ssl_opt_t;
-/*
+/**
* Define the SSL Protocol options
*/
#define SSL_PROTOCOL_NONE (0)
#define SSL_PROTOCOL_ALL (SSL_PROTOCOL_SSLV2|SSL_PROTOCOL_SSLV3|SSL_PROTOCOL_TLSV1)
typedef int ssl_proto_t;
-/*
+/**
* Define the SSL verify levels
*/
typedef enum {
|| (errnum == X509_V_ERR_CERT_UNTRUSTED) \
|| (errnum == X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE))
-/*
+/**
* Define the SSL pass phrase dialog types
*/
typedef enum {
SSL_PPTYPE_PIPE = 2
} ssl_pphrase_t;
-/*
+/**
* Define the Path Checking modes
*/
#define SSL_PCM_EXISTS 1
#define SSL_PCM_ISNONZERO 8
typedef unsigned int ssl_pathcheck_t;
-/*
+/**
* Define the SSL session cache modes and structures
*/
typedef enum {
SSL_SCMODE_NONE_NOT_NULL = 5
} ssl_scmode_t;
-/*
+/**
* Define the SSL mutex modes
*/
typedef enum {
SSL_MUTEXMODE_USED = 1
} ssl_mutexmode_t;
-/*
+/**
* Define the SSL enabled state
*/
typedef enum {
SSL_ENABLED_OPTIONAL = 3
} ssl_enabled_t;
-/*
+/**
* Define the SSL requirement structure
*/
typedef struct {
ssl_expr *mpExpr;
} ssl_require_t;
-/*
+/**
* Define the SSL random number generator seeding source
*/
typedef enum {
int nBytes;
} ssl_randseed_t;
-/*
+/**
* Define the structure of an ASN.1 anything
*/
typedef struct {
apr_time_t source_mtime;
} ssl_asn1_t;
-/*
+/**
* Define the mod_ssl per-module configuration structure
* (i.e. the global configuration for each httpd process)
*/
} rCtx;
} SSLModConfigRec;
-/* public cert/private key */
+/** public cert/private key */
typedef struct {
- /*
+ /**
* server only has 1-2 certs/keys
* 1 RSA and/or 1 DSA
*/
X509 *certs[SSL_AIDX_MAX];
EVP_PKEY *keys[SSL_AIDX_MAX];
- /* Certificates which specify the set of CA names which should be
+ /** Certificates which specify the set of CA names which should be
* sent in the CertificateRequest message: */
const char *ca_name_path;
const char *ca_name_file;
} modssl_pk_server_t;
typedef struct {
- /* proxy can have any number of cert/key pairs */
+ /** proxy can have any number of cert/key pairs */
const char *cert_file;
const char *cert_path;
STACK_OF(X509_INFO) *certs;
} modssl_pk_proxy_t;
-/* stuff related to authentication that can also be per-dir */
+/** stuff related to authentication that can also be per-dir */
typedef struct {
- /* known/trusted CAs */
+ /** known/trusted CAs */
const char *ca_cert_path;
const char *ca_cert_file;
const char *cipher_suite;
- /* for client or downstream server authentication */
+ /** for client or downstream server authentication */
int verify_depth;
ssl_verify_t verify_mode;
} modssl_auth_ctx_t;
typedef struct SSLSrvConfigRec SSLSrvConfigRec;
typedef struct {
- SSLSrvConfigRec *sc; /* pointer back to server config */
+ SSLSrvConfigRec *sc; /** pointer back to server config */
SSL_CTX *ssl_ctx;
- /* we are one or the other */
+ /** we are one or the other */
modssl_pk_server_t *pks;
modssl_pk_proxy_t *pkp;
ssl_proto_t protocol;
- /* config for handling encrypted keys */
+ /** config for handling encrypted keys */
ssl_pphrase_t pphrase_dialog_type;
const char *pphrase_dialog_path;
const char *cert_chain;
- /* certificate revocation list */
+ /** certificate revocation list */
const char *crl_path;
const char *crl_file;
X509_STORE *crl;
modssl_ctx_t *proxy;
};
-/*
+/**
* Define the mod_ssl per-directory configuration structure
* (i.e. the local configuration for all <Directory>
* and .htaccess contexts)
const char *szUserName;
} SSLDirConfigRec;
-/*
+/**
* function prototypes
*/
-/* API glue structures */
+/** API glue structures */
extern module AP_MODULE_DECLARE_DATA ssl_module;
-/* "global" stuff */
+/** "global" stuff */
extern const char ssl_valid_ssl_mutex_string[];
-/* configuration handling */
+/** configuration handling */
SSLModConfigRec *ssl_config_global_create(server_rec *);
void ssl_config_global_fix(SSLModConfigRec *);
BOOL ssl_config_global_isfixed(SSLModConfigRec *);
const char *ssl_cmd_SSLProxyMachineCertificatePath(cmd_parms *, void *, const char *);
const char *ssl_cmd_SSLProxyMachineCertificateFile(cmd_parms *, void *, const char *);
-/* module initialization */
+/** module initialization */
int ssl_init_Module(apr_pool_t *, apr_pool_t *, apr_pool_t *, server_rec *);
void ssl_init_Engine(server_rec *, apr_pool_t *);
void ssl_init_ConfigureServer(server_rec *, apr_pool_t *, apr_pool_t *, SSLSrvConfigRec *);
void ssl_init_Child(apr_pool_t *, server_rec *);
apr_status_t ssl_init_ModuleKill(void *data);
-/* Apache API hooks */
+/** Apache API hooks */
int ssl_hook_Auth(request_rec *);
int ssl_hook_UserCheck(request_rec *);
int ssl_hook_Access(request_rec *);
int ssl_hook_Upgrade(request_rec *);
void ssl_hook_ConfigTest(apr_pool_t *pconf, server_rec *s);
-/* OpenSSL callbacks */
+/** OpenSSL callbacks */
RSA *ssl_callback_TmpRSA(SSL *, int, int);
DH *ssl_callback_TmpDH(SSL *, int, int);
int ssl_callback_SSLVerify(int, X509_STORE_CTX *);
void ssl_callback_DelSessionCacheEntry(SSL_CTX *, SSL_SESSION *);
void ssl_callback_LogTracingState(MODSSL_INFO_CB_ARG_TYPE, int, int);
-/* Session Cache Support */
+/** Session Cache Support */
void ssl_scache_init(server_rec *, apr_pool_t *);
void ssl_scache_status_register(apr_pool_t *p);
void ssl_scache_kill(server_rec *);
void ssl_scache_dc_remove(server_rec *, UCHAR *, int);
void ssl_scache_dc_status(request_rec *r, int flags, apr_pool_t *pool);
-/* Proxy Support */
+/** Proxy Support */
int ssl_proxy_enable(conn_rec *c);
int ssl_engine_disable(conn_rec *c);
-/* I/O */
+/** I/O */
void ssl_io_filter_init(conn_rec *, SSL *);
void ssl_io_filter_register(apr_pool_t *);
long ssl_io_data_cb(BIO *, int, MODSSL_BIO_CB_ARG_TYPE *, int, long, long);
-/* PRNG */
+/** PRNG */
int ssl_rand_seed(server_rec *, apr_pool_t *, ssl_rsctx_t, char *);
-/* Utility Functions */
+/** Utility Functions */
char *ssl_util_vhostid(apr_pool_t *, server_rec *);
apr_file_t *ssl_util_ppopen(server_rec *, apr_pool_t *, const char *,
const char * const *);
void ssl_util_thread_setup(apr_pool_t *);
int ssl_init_ssl_connection(conn_rec *c);
-/* Pass Phrase Support */
+/** Pass Phrase Support */
void ssl_pphrase_Handle(server_rec *, apr_pool_t *);
-/* Diffie-Hellman Parameter Support */
+/** Diffie-Hellman Parameter Support */
DH *ssl_dh_GetTmpParam(int);
DH *ssl_dh_GetParamFromFile(char *);
const char *ssl_asn1_table_keyfmt(apr_pool_t *p,
const char *id,
int keytype);
-/* Mutex Support */
+/** Mutex Support */
int ssl_mutex_init(server_rec *, apr_pool_t *);
int ssl_mutex_reinit(server_rec *, apr_pool_t *);
int ssl_mutex_on(server_rec *);
int ssl_mutex_off(server_rec *);
-/* Logfile Support */
+/** Logfile Support */
void ssl_die(void);
void ssl_log_ssl_error(const char *, int, int, server_rec *);
-/* Variables */
+/** Variables */
void ssl_var_register(void);
char *ssl_var_lookup(apr_pool_t *, server_rec *, conn_rec *, request_rec *, char *);
const char *ssl_ext_lookup(apr_pool_t *p, conn_rec *c, int peer, const char *oid);
#define APR_SHM_MAXSIZE (64 * 1024 * 1024)
#endif /* SSL_PRIVATE_H */
+/** @} */
+
#ifndef SSL_TOOLKIT_COMPAT_H
#define SSL_TOOLKIT_COMPAT_H
-/*
- * this header file provides a compatiblity layer
- * between OpenSSL and RSA sslc
+/**
+ * @file ssl_toolkit_compat.h
+ * @brief this header file provides a compatiblity layer
+ * between OpenSSL and RSA sslc
+ *
+ * @defgroup MOD_SSL_TOOLKIT Toolkit
+ * @ingroup MOD_SSL
+ * @{
*/
#ifdef HAVE_OPENSSL
-/* OpenSSL headers */
+/** OpenSSL headers */
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/x509.h>
#include <openssl/evp.h>
#include <openssl/rand.h>
#include <openssl/x509v3.h>
-/* Avoid tripping over an engine build installed globally and detected
+/** Avoid tripping over an engine build installed globally and detected
* when the user points at an explicit non-engine flavor of OpenSSL
*/
#if defined(HAVE_OPENSSL_ENGINE_H) && defined(HAVE_ENGINE_INIT)
#include <openssl/engine.h>
#endif
-/*
+/**
* rsa sslc uses incomplete types for most structures
* so we macroize for OpenSSL those which cannot be dereferenced
* using the same sames as the sslc functions
#define SSL_SESSION_get_session_id(s) (s->session_id)
#define SSL_SESSION_get_session_id_length(s) (s->session_id_length)
-/*
+/**
* Support for retrieving/overriding states
*/
#ifndef SSL_get_state
#define MODSSL_CLIENT_CERT_CB_ARG_TYPE X509
#define MODSSL_PCHAR_CAST
-/* ...shifting sands of openssl... */
+/** ...shifting sands of openssl... */
#if (OPENSSL_VERSION_NUMBER >= 0x0090707f)
# define MODSSL_D2I_SSL_SESSION_CONST const
#else
#ifndef PEM_F_DEF_CALLBACK
#ifdef PEM_F_PEM_DEF_CALLBACK
-/* In OpenSSL 0.9.8 PEM_F_DEF_CALLBACK was renamed */
+/** In OpenSSL 0.9.8 PEM_F_DEF_CALLBACK was renamed */
#define PEM_F_DEF_CALLBACK PEM_F_PEM_DEF_CALLBACK
#endif
#endif
#include <objects.h>
#include <sslc.h>
-/* sslc does not support this function, OpenSSL has since 9.5.1 */
+/** sslc does not support this function, OpenSSL has since 9.5.1 */
#define RAND_status() 1
-/* sslc names this function a bit differently */
+/** sslc names this function a bit differently */
#define CRYPTO_num_locks() CRYPTO_get_num_locks()
#ifndef STACK_OF
PEM_read_bio_PrivateKey(b, k, cb)
#ifndef HAVE_SSL_SET_STATE
-#define SSL_set_state(ssl, state) /* XXX: should throw an error */
+#define SSL_set_state(ssl, state) /** XXX: should throw an error */
#endif
#define modssl_set_cipher_list(ssl, l) \
#define modssl_set_verify(ssl, verify, cb) \
SSL_set_verify(ssl, verify)
-#else /* SSLC_VERSION_NUMBER >= 0x2000 */
+#else /** SSLC_VERSION_NUMBER >= 0x2000 */
#define CRYPTO_malloc_init R_malloc_init
#define EVP_cleanup()
-#endif /* SSLC_VERSION_NUMBER >= 0x2000 */
+#endif /** SSLC_VERSION_NUMBER >= 0x2000 */
typedef void (*modssl_popfree_fn)(char *data);
#define sk_X509_REVOKED_num sk_num
#define sk_X509_REVOKED_value (X509_REVOKED *)sk_value
-#else /* ! HAVE_OPENSSL && ! HAVE_SSLC */
+#else /** ! HAVE_OPENSSL && ! HAVE_SSLC */
#error "Unrecognized SSL Toolkit!"
#endif
#endif /* SSL_TOOLKIT_COMPAT_H */
+
+/** @} */
* limitations under the License.
*/
-/* _ _
- * _ __ ___ ___ __| | ___ ___| | mod_ssl
- * | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL
- * | | | | | | (_) | (_| | \__ \__ \ |
- * |_| |_| |_|\___/ \__,_|___|___/___/_|
- * |_____|
- * ssl_util_ssl.h
- * Additional Utility Functions for OpenSSL
+/**
+ * @verbatim
+ _ _
+ _ __ ___ ___ __| | ___ ___| | mod_ssl
+ | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL
+ | | | | | | (_) | (_| | \__ \__ \ |
+ |_| |_| |_|\___/ \__,_|___|___/___/_|
+ |_____|
+ @endverbatim
+ * @file ssl_util_ssl.h
+ * @brief Additional Utility Functions for OpenSSL
+ *
+ * @defgroup MOD_SSL_UTIL Utilities
+ * @ingroup MOD_SSL
+ * @{
*/
#ifndef __SSL_UTIL_SSL_H__
#define __SSL_UTIL_SSL_H__
-/*
+/**
* Determine SSL library version number
*/
#ifdef OPENSSL_VERSION_NUMBER
#define SSL_LIBRARY_TEXT "OtherSSL 0.0.0 00 XXX 0000"
#endif
-/*
+/**
* Maximum length of a DER encoded session.
* FIXME: There is no define in OpenSSL, but OpenSSL uses 1024*10,
* so this value should be ok. Although we have no warm feeling.
*/
#define SSL_SESSION_MAX_DER 1024*10
-/* max length for SSL_SESSION_id2sz */
+/** max length for SSL_SESSION_id2sz */
#define SSL_SESSION_ID_STRING_LEN \
((SSL_MAX_SSL_SESSION_ID_LENGTH + 1) * 2)
-/*
+/**
* Additional Functions
*/
void SSL_init_app_data2_idx(void);
int SSL_CTX_use_certificate_chain(SSL_CTX *, char *, int, modssl_read_bio_cb_fn *);
char *SSL_SESSION_id2sz(unsigned char *, int, char *, int);
-/* util functions for OpenSSL+sslc compat */
+/** util functions for OpenSSL+sslc compat */
int modssl_session_get_time(SSL_SESSION *session);
DH *modssl_dh_configure(unsigned char *p, int plen,
unsigned char *g, int glen);
#endif /* __SSL_UTIL_SSL_H__ */
+/** @} */
+
* limitations under the License.
*/
+/**
+ * @file beosd.h
+ * @brief common stuff that beos MPMs will want
+ *
+ * @addtogroup APACHE_OS_BEOS
+ * @{
+ */
+
#ifndef BEOSD_H
#define BEOSD_H
#include "httpd.h"
#include "ap_listen.h"
-/* common stuff that beos MPMs will want */
/* Default user name and group name. These may be specified as numbers by
* placing a # before a number */
"Effective group id for this server (NO-OP)")
#endif /* BEOSD_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file beos/os.h
+ * @brief This file in included in all Apache source code. It contains definitions
+ * of facilities available on _this_ operating system (HAVE_* macros),
+ * and prototypes of OS specific functions defined in os.c or os-inline.c
+ *
+ * @defgroup APACHE_OS_BEOS beos
+ * @ingroup APACHE_OS
+ * @{
+ */
+
#ifndef APACHE_OS_H
#define APACHE_OS_H
#endif
#endif /* !APACHE_OS_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file bs2000/ebcdic.h
+ * @brief EBCDIC/ASCII converson function declarations
+ *
+ * @addtogroup APACHE_OS_BS2000
+ * @{
+ */
+
#include <sys/types.h>
extern const unsigned char os_toascii[256];
void ebcdic2ascii(unsigned char *dest, const unsigned char *srce, size_t count);
void ebcdic2ascii_strictly(unsigned char *dest, const unsigned char *srce, size_t count);
void ascii2ebcdic(unsigned char *dest, const unsigned char *srce, size_t count);
+/** @} */
* limitations under the License.
*/
+/**
+ * @file bs2000/os.h
+ * @brief This file in included in all Apache source code. It contains definitions
+ * of facilities available on _this_ operating system (HAVE_* macros),
+ * and prototypes of OS specific functions defined in os.c or os-inline.c
+ *
+ * @defgroup APACHE_OS_BS2000 bs2000
+ * @ingroup APACHE_OS
+ * @{
+ */
+
#ifndef APACHE_OS_BS2000_H
#define APACHE_OS_BS2000_H
#include "../unix/os.h"
-/*
- * This file in included in all Apache source code. It contains definitions
- * of facilities available on _this_ operating system (HAVE_* macros),
- * and prototypes of OS specific functions defined in os.c or os-inline.c
- */
-
/* Other ap_os_ routines not used by this platform */
extern pid_t os_fork(const char *user);
#endif /* APACHE_OS_BS2000_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file netware/os.h
+ * @brief This file in included in all Apache source code. It contains definitions
+ * of facilities available on _this_ operating system (HAVE_* macros),
+ * and prototypes of OS specific functions defined in os.c or os-inline.c
+ *
+ * @defgroup APACHE_OS_NETWARE netware
+ * @ingroup APACHE_OS
+ * @{
+ */
+
#ifndef APACHE_OS_H
#define APACHE_OS_H
#define exit(s) {if((s||hold_screen_on_exit)&&(hold_screen_on_exit>=0)){pressanykey();}apr_terminate();exit(s);}
#endif /* ! APACHE_OS_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file pre_nw.h
+ * @brief Definitions for Netware systems
+ *
+ * @addtogroup APACHE_OS_NETWARE
+ * @{
+ */
+
#ifndef __pre_nw__
#define __pre_nw__
#define AP_MAX_INCLUDE_DEPTH 48
#endif
-
-
-
+/** @} */
* limitations under the License.
*/
+/**
+ * @file os2/os.h
+ * @brief This file in included in all Apache source code. It contains definitions
+ * of facilities available on _this_ operating system (HAVE_* macros),
+ * and prototypes of OS specific functions defined in os.c or os-inline.c
+ *
+ * @defgroup APACHE_OS_OS2 os2
+ * @ingroup APACHE_OS
+ * @{
+ */
+
#ifndef APACHE_OS_H
#define APACHE_OS_H
#define HAVE_UNC_PATHS
#define CASE_BLIND_FILESYSTEM
-/*
- * This file in included in all Apache source code. It contains definitions
- * of facilities available on _this_ operating system (HAVE_* macros),
- * and prototypes of OS specific functions defined in os.c or os-inline.c
- */
-
#endif /* ! APACHE_OS_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file tpf/ebcdic.h
+ * @brief EBCDIC/ASCII converson function declarations
+ *
+ * @addtogroup APACHE_OS_TPF
+ * @{
+ */
+
#include <sys/types.h>
extern const unsigned char os_toascii[256];
void ebcdic2ascii(void *dest, const void *srce, size_t count);
void ebcdic2ascii_strictly(unsigned char *dest, const unsigned char *srce, size_t count);
void ascii2ebcdic(void *dest, const void *srce, size_t count);
-
+/** @} */
* limitations under the License.
*/
+/**
+ * @file tpf/os.h
+ * @brief This file in included in all Apache source code. It contains definitions
+ * of facilities available on _this_ operating system (HAVE_* macros),
+ * and prototypes of OS specific functions defined in os.c or os-inline.c
+ *
+ * @defgroup APACHE_OS_TPF tpf
+ * @ingroup APACHE_OS
+ * @{
+ */
+
#ifndef APACHE_OS_H
#define APACHE_OS_H
#undef errno
#endif
-/*
- * This file in included in all Apache source code. It contains definitions
- * of facilities available on _this_ operating system (HAVE_* macros),
- * and prototypes of OS specific functions defined in os.c or os-inline.c
- */
-
#include "apr.h"
#include "ap_config.h"
#include <strings.h>
#undef NSIG
#endif
#endif /*! APACHE_OS_H*/
+/** @} */
* limitations under the License.
*/
+/**
+ * @file unix/os.h
+ * @brief This file in included in all Apache source code. It contains definitions
+ * of facilities available on _this_ operating system (HAVE_* macros),
+ * and prototypes of OS specific functions defined in os.c or os-inline.c
+ *
+ * @defgroup APACHE_OS_UNIX unix
+ * @ingroup APACHE_OS
+ * @{
+ */
+
#ifndef APACHE_OS_H
#define APACHE_OS_H
#endif
#endif /* !APACHE_OS_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file unixd.h
+ * @brief common stuff that unix MPMs will want
+ *
+ * @addtogroup APACHE_OS_UNIX
+ * @{
+ */
+
#ifndef UNIXD_H
#define UNIXD_H
AP_DECLARE_HOOK(ap_unix_identity_t *, get_suexec_identity,(const request_rec *r))
-/* common stuff that unix MPMs will want */
/* Default user name and group name. These may be specified as numbers by
* placing a # before a number */
"Effective group id for this server")
#endif
+/** @} */
* limitations under the License.
*/
+/**
+ * @file win32/os.h
+ * @brief This file in included in all Apache source code. It contains definitions
+ * of facilities available on _this_ operating system (HAVE_* macros),
+ * and prototypes of OS specific functions defined in os.c or os-inline.c
+ *
+ * @defgroup APACHE_OS_WIN32 win32
+ * @ingroup APACHE_OS
+ * @{
+ */
+
#ifdef WIN32
#ifndef AP_OS_H
#endif /* ndef AP_OS_H */
#endif /* def WIN32 */
+/** @} */
* limitations under the License.
*/
-/*
- * core_filters.c --- Core input/output network filters.
+/**
+ * @file core_filters.c
+ * @brief Core input/output network filters.
*/
#include "apr.h"
extern const void *ap_ugly_hack;
return ap_ugly_hack;
+ gzeof(NULL);
}
#endif
* limitations under the License.
*/
+/**
+ * @file beos/beos.h
+ * @brief Extern functions/values for BEOS MPM
+ *
+ * @addtogroup APACHE_MPM_BEOS
+ * @{
+ */
#ifndef APACHE_MPM_BEOS_H
#define APACHE_MPM_BEOS_H
extern int max_daemons_limit;
#endif /* APACHE_MPM_BEOS_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file beos/mpm.h
+ * @brief BEOS MPM
+ *
+ * @defgroup APACHE_MPM_BEOS BEOS MPM
+ * @ingroup APACHE_MPM APACHE_OS_BEOS
+ * @{
+ */
+
#ifndef APACHE_MPM_BEOS_H
#define APACHE_MPM_BEOS_H
extern int ap_threads_per_child;
#endif /* APACHE_MPM_BEOS_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file beos/mpm_default.h
+ * @brief beos MPM defaults
+ *
+ * @addtogroup APACHE_MPM_BEOS
+ * @{
+ */
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file event/fdqueue.h
+ * @brief fd queue declarations
+ *
+ * @addtogroup APACHE_MPM_EVENT
+ * @{
+ */
+
#ifndef FDQUEUE_H
#define FDQUEUE_H
#include "httpd.h"
apr_status_t ap_queue_term(fd_queue_t * queue);
#endif /* FDQUEUE_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file event/mpm.h
+ * @brief Unix Exent driven MPM
+ *
+ * @defgroup APACHE_MPM_EVENT Unix Event MPM
+ * @ingroup APACHE_OS_UNIX APACHE_MPM
+ * @{
+ */
+
#include "scoreboard.h"
#include "unixd.h"
extern char ap_coredump_dir[MAX_STRING_LEN];
#endif /* APACHE_MPM_EVENT_H */
+/** @} */
* limitations under the License.
*/
+
+/**
+ * @file event/mpm_default.h
+ * @brief Event MPM defaults
+ *
+ * @addtogroup APACHE_MPM_EVENT
+ * @{
+ */
+
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file event/pod.h
+ * @brief pod definitions
+ *
+ * @addtogroup APACHE_MPM_EVENT
+ * @{
+ */
+
#include "apr.h"
#include "apr_strings.h"
#define APR_WANT_STRFUNC
AP_DECLARE(apr_status_t) ap_mpm_pod_close(ap_pod_t * pod);
AP_DECLARE(apr_status_t) ap_mpm_pod_signal(ap_pod_t * pod, int graceful);
AP_DECLARE(void) ap_mpm_pod_killpg(ap_pod_t * pod, int num, int graceful);
+/** @} */
* limitations under the License.
*/
+/**
+ * @file leader/mpm.h
+ * @brief Unix Leader-Follower MPM
+ *
+ * @defgroup APACHE_MPM_LEADER Unix Leader-Follower MPM
+ * @ingroup APACHE_MPM APACHE_OS_UNIX
+ * @{
+ */
+
#include "scoreboard.h"
#include "unixd.h"
extern char ap_coredump_dir[MAX_STRING_LEN];
#endif /* APACHE_MPM_LEADER_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file leader/mpm_default.h
+ * @brief Leader-Follower MPM defaults
+ *
+ * @addtogroup APACHE_MPM_LEADER
+ * @{
+ */
+
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file perchild/mpm.h
+ * @brief Unix Perchild MPM
+ *
+ * @defgroup APACHE_MPM_PERCHILD Uinx Perchild MPM
+ * @ingroup APACHE_MPM APACHE_OS_UNIX
+ * @{
+ */
+
#include "httpd.h"
#include "mpm_default.h"
#include "unixd.h"
extern server_rec *ap_server_conf;
#endif /* APACHE_MPM_PERCHILD_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file perchild/mpm_default.h
+ * @brief perchild MPM defaults
+ *
+ * @addtogroup APACHE_MPM_PERCHILD
+ * @{
+ */
+
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file threadpool/mpm.h
+ * @brief Unix Threadpool MPM
+ *
+ * @defgroup APACHE_MPM_THREADPOOL Unix Threadpool MPM
+ * @ingroup APACHE_OS_UNIX APACHE_MPM
+ * @{
+ */
+
#include "scoreboard.h"
#include "unixd.h"
extern char ap_coredump_dir[MAX_STRING_LEN];
#endif /* APACHE_MPM_THREADPOOL_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file threadpool/mpm_default.h
+ * @brief Unix Threadpool MPM defaults
+ *
+ * @addtogroup APACHE_MPM_THREADPOOL
+ * @{
+ */
+
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file threadpool/pod.h
+ * @brief Threadpool Pipe of Death declarations
+ *
+ * @addtogroup APACHE_MPM_THREADPOOL
+ * @{
+ */
+
#include "apr.h"
#include "apr_strings.h"
#define APR_WANT_STRFUNC
AP_DECLARE(apr_status_t) ap_mpm_pod_close(ap_pod_t *pod);
AP_DECLARE(apr_status_t) ap_mpm_pod_signal(ap_pod_t *pod, int graceful);
AP_DECLARE(void) ap_mpm_pod_killpg(ap_pod_t *pod, int num, int graceful);
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mpmt_os2/mpm.h
+ * @brief MPM for os2
+ *
+ * @defgroup APACHE_MPM_OS2 os2 MPM
+ * @ingroup APACHE_OS_OS2 APACHE_MPM
+ */
+
#ifndef APACHE_MPM_MPMT_OS2_H
#define APACHE_MPM_MPMT_OS2_H
#define AP_MPM_WANT_SET_MAX_MEM_FREE
#endif /* APACHE_MPM_MPMT_OS2_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mpmt_os2/mpm_default.h
+ * @brief os2 MPM defaults
+ *
+ * @addtogroup APACHE_MPM_OS2
+ * @{
+ */
+
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file netware/mpm.h
+ * @brief Netware MPM
+ *
+ * @defgroup APACHE_MPM_NETWARE Netware MPM
+ * @ingroup APACHE_OS_NETWARE APACHE_MPM
+ * @{
+ */
+
#include "scoreboard.h"
#ifndef APACHE_MPM_THREADED_H
extern server_rec *ap_server_conf;
#endif /* APACHE_MPM_THREADED_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file netware/mpm_default.h
+ * @brief Defaults for Netware MPM
+ *
+ * @addtogroup APACHE_MPM_NETWARE
+ * @{
+ */
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file prefork/mpm.h
+ * @brief Unix Prefork MPM (default for Uinx systems)
+ *
+ * @defgroup APACHE_MPM_PREFORK Unix Prefork
+ * @ingroup APACHE_MPM APACHE_OS_UNIX
+ * @{
+ */
+
#include "httpd.h"
#include "mpm_default.h"
#include "scoreboard.h"
extern int ap_max_daemons_limit;
extern server_rec *ap_server_conf;
#endif /* APACHE_MPM_PREFORK_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file prefork/mpm_default.h
+ * @brief Prefork MPM defaults
+ *
+ * @addtogroup APACHE_MPM_PREFORK
+ * @{
+ */
+
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file Win9xConHook.h
+ * @brief ???
+ *
+ * @addtogroup APACHE_MPM_WINNT
+ * @{
+ */
+
#ifndef AP_WIN9XCONHOOK_H
#define AP_WIN9XCONHOOK_H
#endif /* WIN32 */
#endif AP_WIN9XCONHOOK_H
+/** @} */
* limitations under the License.
*/
-#ifndef APACHE_MPM_H
-#define APACHE_MPM_H
-
-/* mpm.h is the place to make declarations that are MPM specific but that must be
+/**
+ * @file winnt/mpm.h
+ * @brief MPM for Windows NT
+ *
+ * this is the place to make declarations that are MPM specific but that must be
* shared with non-mpm specific code in the server. Hummm, perhaps we can
* move most of this stuff to mpm_common.h?
+ *
+ * @defgroup APACHE_MPM_WINNT WinNT MPM
+ * @ingroup APACHE_OS_WIN32 APACHE_MPM
+ * @{
*/
+#ifndef APACHE_MPM_H
+#define APACHE_MPM_H
+
#include "scoreboard.h"
#define MPM_NAME "WinNT"
extern server_rec *ap_server_conf;
#endif /* APACHE_MPM_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file winnt/mpm_default.h
+ * @brief win32 MPM defaults
+ *
+ * @addtogroup APACHE_MPM_WINNT
+ * @{
+ */
+
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file mpm_winnt.h
+ * @brief WinNT MPM specific
+ *
+ * @addtogroup APACHE_MPM_WINNT
+ * @{
+ */
+
#ifndef APACHE_MPM_WINNT_H
#define APACHE_MPM_WINNT_H
apr_status_t mpm_post_completion_context(PCOMP_CONTEXT pCompContext, io_state_e state);
void hold_console_open_on_error(void);
#endif /* APACHE_MPM_WINNT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file worker/fdqueue.h
+ * @brief fd queue declarations
+ *
+ * @addtogroup APACHE_MPM_WORKER
+ * @{
+ */
+
#ifndef FDQUEUE_H
#define FDQUEUE_H
#include "httpd.h"
apr_status_t ap_queue_term(fd_queue_t *queue);
#endif /* FDQUEUE_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file worker/mpm.h
+ * @brief Unix Worker MPM
+ *
+ * @defgroup APACHE_MPM_WORKER Unix Worker MPM
+ * @ingroup APACHE_OS_UNIX APACHE_MPM
+ * @{
+ */
+
#include "scoreboard.h"
#include "unixd.h"
extern char ap_coredump_dir[MAX_STRING_LEN];
#endif /* APACHE_MPM_WORKER_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file worker/mpm_default.h
+ * @brief Worker MPM defaults
+ *
+ * @addtogroup APACHE_MPM_WORKER
+ * @{
+ */
+
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H
#endif
#endif /* AP_MPM_DEFAULT_H */
+/** @} */
* limitations under the License.
*/
+/**
+ * @file worker/pod.h
+ * @brief Worker MPM Pipe of Death
+ *
+ * @addtogroup APACHE_MPM_WORKER
+ * @{
+ */
+
#include "apr.h"
#include "apr_strings.h"
#define APR_WANT_STRFUNC
AP_DECLARE(apr_status_t) ap_mpm_pod_close(ap_pod_t *pod);
AP_DECLARE(apr_status_t) ap_mpm_pod_signal(ap_pod_t *pod, int graceful);
AP_DECLARE(void) ap_mpm_pod_killpg(ap_pod_t *pod, int num, int graceful);
+/** @} */
*/
/*
- * http_request.c: functions to get and process requests
+ * @file request.c
+ * @brief functions to get and process requests
*
- * Rob McCool 3/21/93
+ * @author Rob McCool 3/21/93
*
* Thoroughly revamped by rst for Apache. NB this file reads
* best from the bottom up.
* limitations under the License.
*/
-/*
- * http_vhost.c: functions pertaining to virtual host addresses
- * (configuration and run-time)
+/**
+ * @file vhost.c
+ * @brief functions pertaining to virtual host addresses
+ * (configuration and run-time)
*/
#include "apr.h"
* limitations under the License.
*/
-/*
- * suexec.h -- user-definable variables for the suexec wrapper code.
- * (See README.configure on how to customize these variables.)
+/**
+ * @file suexec.h
+ * @brief user-definable variables for the suexec wrapper code.
+ * (See README.configure on how to customize these variables.)
*/
* limitations under the License.
*/
-/* Resource definitions for ApacheMonitor.rc and ApacheMonitor.c
+/**
+ * @file ApacheMonitor.h
+ * @brief Resource definitions for ApacheMonitor.rc and ApacheMonitor.c
*/
#define IDD_DLGSERVICES 101