Apache2
http_core.h File Reference

CORE HTTP Daemon. More...

#include "apr.h"
#include "apr_hash.h"
#include "apr_optional.h"
#include "util_filter.h"
#include "ap_expr.h"
#include "apr_poll.h"
#include "apr_tables.h"
#include "http_config.h"
Include dependency graph for http_core.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  require_line
 A structure to keep track of authorization requirements. More...
 
struct  core_request_config
 Per-request configuration. More...
 
struct  core_dir_config
 Per-directory configuration. More...
 
struct  core_server_config
 
union  ap_mgmt_value
 
struct  ap_mgmt_item_t
 
struct  ap_errorlog_info
 
struct  ap_errorlog_provider
 
struct  ap_errorlog_handler
 
struct  ap_errorlog_format_item
 

Macros

#define OPT_NONE   0
 
#define OPT_INDEXES   1
 
#define OPT_INCLUDES   2
 
#define OPT_SYM_LINKS   4
 
#define OPT_EXECCGI   8
 
#define OPT_UNSET   16
 
#define OPT_INC_WITH_EXEC   32
 
#define OPT_SYM_OWNER   64
 
#define OPT_MULTI   128
 
#define OPT_ALL   (OPT_INDEXES|OPT_INCLUDES|OPT_INC_WITH_EXEC|OPT_SYM_LINKS|OPT_EXECCGI)
 
#define REMOTE_HOST   (0)
 
#define REMOTE_NAME   (1)
 
#define REMOTE_NOLOOKUP   (2)
 
#define REMOTE_DOUBLE_REV   (3)
 
#define SATISFY_ALL   0
 
#define SATISFY_ANY   1
 
#define SATISFY_NOSPEC   2
 
#define AP_MIN_BYTES_TO_WRITE   8000
 
#define AP_DEFAULT_MAX_INTERNAL_REDIRECTS   10
 
#define AP_DEFAULT_MAX_SUBREQ_DEPTH   10
 
#define AP_CORE_MODULE_INDEX   0
 
#define ap_get_core_module_config(v)    (((void **)(v))[AP_CORE_MODULE_INDEX])
 
#define ap_set_core_module_config(v, val)    ((((void **)(v))[AP_CORE_MODULE_INDEX]) = (val))
 
#define AP_NOTE_DIRECTORY_WALK   0
 
#define AP_NOTE_LOCATION_WALK   1
 
#define AP_NOTE_FILE_WALK   2
 
#define AP_NOTE_IF_WALK   3
 
#define AP_NUM_STD_NOTES   4
 
#define ETAG_UNSET   0
 
#define ETAG_NONE   (1 << 0)
 
#define ETAG_MTIME   (1 << 1)
 
#define ETAG_INODE   (1 << 2)
 
#define ETAG_SIZE   (1 << 3)
 
#define ETAG_DIGEST   (1 << 4)
 
#define ETAG_ALL   (ETAG_MTIME | ETAG_INODE | ETAG_SIZE)
 
#define ETAG_BACKWARD   (ETAG_MTIME | ETAG_SIZE)
 
#define AP_CORE_CONFIG_OFF   (0)
 
#define AP_CORE_CONFIG_ON   (1)
 
#define AP_CORE_CONFIG_UNSET   (2)
 
#define AP_CORE_MERGE_FLAG(field, to, base, over)
 
#define HOSTNAME_LOOKUP_OFF   0
 
#define HOSTNAME_LOOKUP_ON   1
 
#define HOSTNAME_LOOKUP_DOUBLE   2
 
#define HOSTNAME_LOOKUP_UNSET   3
 
#define USE_CANONICAL_NAME_OFF   (0)
 
#define USE_CANONICAL_NAME_ON   (1)
 
#define USE_CANONICAL_NAME_DNS   (2)
 
#define USE_CANONICAL_NAME_UNSET   (3)
 
#define ADD_DEFAULT_CHARSET_OFF   (0)
 
#define ADD_DEFAULT_CHARSET_ON   (1)
 
#define ADD_DEFAULT_CHARSET_UNSET   (2)
 
#define ENABLE_MMAP_OFF   (0)
 
#define ENABLE_MMAP_ON   (1)
 
#define ENABLE_MMAP_UNSET   (2)
 
#define ENABLE_SENDFILE_OFF   (0)
 
#define ENABLE_SENDFILE_ON   (1)
 
#define ENABLE_SENDFILE_UNSET   (2)
 
#define USE_CANONICAL_PHYS_PORT_OFF   (0)
 
#define USE_CANONICAL_PHYS_PORT_ON   (1)
 
#define USE_CANONICAL_PHYS_PORT_UNSET   (2)
 
#define AP_CONDITION_IF   1
 
#define AP_CONDITION_ELSE   2
 
#define AP_CONDITION_ELSEIF   (AP_CONDITION_ELSE|AP_CONDITION_IF)
 
#define AP_MAXRANGES_UNSET   -1
 
#define AP_MAXRANGES_DEFAULT   -2
 
#define AP_MAXRANGES_UNLIMITED   -3
 
#define AP_MAXRANGES_NORANGES   0
 
#define AP_CGI_PASS_AUTH_OFF   (0)
 
#define AP_CGI_PASS_AUTH_ON   (1)
 
#define AP_CGI_PASS_AUTH_UNSET   (2)
 
#define AP_SENDFILE_ENABLED(x)    ((x) == ENABLE_SENDFILE_ON ? APR_SENDFILE_ENABLED : 0)
 
#define AP_TRACE_UNSET   -1
 
#define AP_TRACE_DISABLE   0
 
#define AP_TRACE_ENABLE   1
 
#define AP_TRACE_EXTENDED   2
 
#define AP_MERGE_TRAILERS_UNSET   0
 
#define AP_MERGE_TRAILERS_ENABLE   1
 
#define AP_MERGE_TRAILERS_DISABLE   2
 
#define AP_HTTP09_UNSET   0
 
#define AP_HTTP09_ENABLE   1
 
#define AP_HTTP09_DISABLE   2
 
#define AP_HTTP_CONFORMANCE_UNSET   0
 
#define AP_HTTP_CONFORMANCE_UNSAFE   1
 
#define AP_HTTP_CONFORMANCE_STRICT   2
 
#define AP_HTTP_METHODS_UNSET   0
 
#define AP_HTTP_METHODS_LENIENT   1
 
#define AP_HTTP_METHODS_REGISTERED   2
 
#define AP_HTTP_CL_HEAD_ZERO_UNSET   0
 
#define AP_HTTP_CL_HEAD_ZERO_ENABLE   1
 
#define AP_HTTP_CL_HEAD_ZERO_DISABLE   2
 
#define AP_HTTP_EXPECT_STRICT_UNSET   0
 
#define AP_HTTP_EXPECT_STRICT_ENABLE   1
 
#define AP_HTTP_EXPECT_STRICT_DISABLE   2
 
#define AP_ERRORLOG_PROVIDER_GROUP   "error_log_writer"
 
#define AP_ERRORLOG_PROVIDER_VERSION   "0"
 
#define AP_ERRORLOG_DEFAULT_PROVIDER   "file"
 
#define AP_ERRORLOG_PROVIDER_ADD_EOL_STR   1
 
#define AP_ERRORLOG_FLAG_FIELD_SEP   1
 
#define AP_ERRORLOG_FLAG_MESSAGE   2
 
#define AP_ERRORLOG_FLAG_REQUIRED   4
 
#define AP_ERRORLOG_FLAG_NULL_AS_HYPHEN   8
 
#define AP_SQ_MAIN_STATE   0
 
#define AP_SQ_RUN_MODE   1
 
#define AP_SQ_CONFIG_GEN   2
 
#define AP_SQ_NOT_SUPPORTED   -1
 
#define AP_SQ_MS_INITIAL_STARTUP   1
 
#define AP_SQ_MS_CREATE_PRE_CONFIG   2
 
#define AP_SQ_MS_DESTROY_CONFIG   3
 
#define AP_SQ_MS_CREATE_CONFIG   4
 
#define AP_SQ_MS_RUN_MPM   5
 
#define AP_SQ_MS_EXITING   6
 
#define AP_SQ_RM_UNKNOWN   1
 
#define AP_SQ_RM_NORMAL   2
 
#define AP_SQ_RM_CONFIG_TEST   3
 
#define AP_SQ_RM_CONFIG_DUMP   4
 
#define AP_CORE_DEFAULT(X, Y, Z)   (X ? X->Y : Z)
 

Typedefs

typedef struct require_line require_line
 
typedef unsigned char allow_options_t
 
typedef unsigned int overrides_t
 
typedef unsigned long etag_components_t
 
typedef struct ap_errorlog_info ap_errorlog_info
 
typedef struct ap_errorlog_provider ap_errorlog_provider
 
typedef int ap_errorlog_handler_fn_t(const ap_errorlog_info *info, const char *arg, char *buf, int buflen)
 
typedef struct ap_errorlog_handler ap_errorlog_handler
 

Enumerations

enum  server_signature_e { srv_sig_unset , srv_sig_off , srv_sig_on , srv_sig_withmail }
 Server Signature Enumeration. More...
 
enum  ap_mgmt_type_e { ap_mgmt_type_string , ap_mgmt_type_long , ap_mgmt_type_hash }
 

Functions

int ap_allow_options (request_rec *r)
 
int ap_allow_overrides (request_rec *r)
 
const char * ap_document_root (request_rec *r)
 
const char * ap_get_useragent_host (request_rec *req, int type, int *str_is_ip)
 
const char * ap_get_remote_host (conn_rec *conn, void *dir_config, int type, int *str_is_ip)
 
const char * ap_get_remote_logname (request_rec *r)
 
char * ap_construct_url (apr_pool_t *p, const char *uri, request_rec *r)
 
const char * ap_get_server_name (request_rec *r)
 
const char * ap_get_server_name_for_url (request_rec *r)
 
apr_port_t ap_get_server_port (const request_rec *r)
 
apr_size_t ap_get_read_buf_size (const request_rec *r)
 
apr_off_t ap_get_limit_req_body (const request_rec *r)
 
apr_size_t ap_get_limit_xml_body (const request_rec *r)
 
void ap_custom_response (request_rec *r, int status, const char *string)
 
int ap_is_recursion_limit_exceeded (const request_rec *r)
 
int ap_exists_config_define (const char *name)
 
int ap_core_translate (request_rec *r)
 
const char * ap_auth_type (request_rec *r)
 
const char * ap_auth_name (request_rec *r)
 
int ap_satisfies (request_rec *r)
 
void * ap_get_core_module_config (const ap_conf_vector_t *cv)
 
void ap_set_core_module_config (ap_conf_vector_t *cv, void *val)
 
apr_socket_tap_get_conn_socket (conn_rec *c)
 
apr_size_t ap_register_request_note (void)
 
void ** ap_get_request_note (request_rec *r, apr_size_t note_num)
 
void ap_add_output_filters_by_type (request_rec *r)
 
void ap_core_reorder_directories (apr_pool_t *, server_rec *)
 
void ap_add_per_dir_conf (server_rec *s, void *dir_config)
 
void ap_add_per_url_conf (server_rec *s, void *url_config)
 
void ap_add_file_conf (apr_pool_t *p, core_dir_config *conf, void *url_config)
 
const char * ap_add_if_conf (apr_pool_t *p, core_dir_config *conf, void *url_config)
 
const char * ap_limit_section (cmd_parms *cmd, void *dummy, const char *arg)
 
apr_status_t ap_core_input_filter (ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
 
apr_status_t ap_core_output_filter (ap_filter_t *f, apr_bucket_brigade *b)
 
const char * ap_get_server_protocol (server_rec *s)
 
void ap_set_server_protocol (server_rec *s, const char *proto)
 
apr_status_t insert_network_bucket (conn_rec *c, apr_bucket_brigade *bb, apr_socket_t *socket)
 
int get_mgmt_items (apr_pool_t *p, const char *val, apr_hash_t *ht)
 
void ap_logio_add_bytes_out (conn_rec *c, apr_off_t bytes)
 
void ap_logio_add_bytes_in (conn_rec *c, apr_off_t bytes)
 
apr_off_t ap_logio_get_last_bytes (conn_rec *c)
 
void ap_register_errorlog_handler (apr_pool_t *p, char *tag, ap_errorlog_handler_fn_t *handler, int flags)
 
void error_log (const ap_errorlog_info *info, const char *errstr)
 
void ap_register_log_hooks (apr_pool_t *p)
 
void ap_register_config_hooks (apr_pool_t *p)
 
const char * ap_ident_lookup (request_rec *r)
 
int authz_some_auth_required (request_rec *r)
 
const char * authn_ap_auth_type (request_rec *r)
 
const char * authn_ap_auth_name (request_rec *r)
 
int access_compat_ap_satisfies (request_rec *r)
 
int ap_state_query (int query_code)
 
conn_recap_create_slave_connection (conn_rec *c)
 
apr_status_t get_pollfd_from_conn (conn_rec *c, struct apr_pollfd_t *pfd, apr_interval_time_t *ptimeout)
 
apr_status_t ap_get_pollfd_from_conn (conn_rec *c, struct apr_pollfd_t *pfd, apr_interval_time_t *ptimeout)
 

Variables

AP_DECLARE_DATA module core_module
 
AP_DECLARE_DATA ap_filter_rec_tap_subreq_core_filter_handle
 
AP_DECLARE_DATA ap_filter_rec_tap_core_output_filter_handle
 
AP_DECLARE_DATA ap_filter_rec_tap_content_length_filter_handle
 
AP_DECLARE_DATA ap_filter_rec_tap_core_input_filter_handle
 

Detailed Description

CORE HTTP Daemon.

Macro Definition Documentation

◆ ADD_DEFAULT_CHARSET_OFF

#define ADD_DEFAULT_CHARSET_OFF   (0)

◆ ADD_DEFAULT_CHARSET_ON

#define ADD_DEFAULT_CHARSET_ON   (1)

◆ ADD_DEFAULT_CHARSET_UNSET

#define ADD_DEFAULT_CHARSET_UNSET   (2)

◆ AP_CGI_PASS_AUTH_OFF

#define AP_CGI_PASS_AUTH_OFF   (0)

◆ AP_CGI_PASS_AUTH_ON

#define AP_CGI_PASS_AUTH_ON   (1)

◆ AP_CGI_PASS_AUTH_UNSET

#define AP_CGI_PASS_AUTH_UNSET   (2)

◆ AP_CONDITION_ELSE

#define AP_CONDITION_ELSE   2

◆ AP_CONDITION_ELSEIF

#define AP_CONDITION_ELSEIF   (AP_CONDITION_ELSE|AP_CONDITION_IF)

◆ AP_CONDITION_IF

#define AP_CONDITION_IF   1

◆ AP_HTTP09_DISABLE

#define AP_HTTP09_DISABLE   2

◆ AP_HTTP09_ENABLE

#define AP_HTTP09_ENABLE   1

◆ AP_HTTP09_UNSET

#define AP_HTTP09_UNSET   0

◆ AP_HTTP_CL_HEAD_ZERO_DISABLE

#define AP_HTTP_CL_HEAD_ZERO_DISABLE   2

◆ AP_HTTP_CL_HEAD_ZERO_ENABLE

#define AP_HTTP_CL_HEAD_ZERO_ENABLE   1

◆ AP_HTTP_CL_HEAD_ZERO_UNSET

#define AP_HTTP_CL_HEAD_ZERO_UNSET   0

◆ AP_HTTP_CONFORMANCE_STRICT

#define AP_HTTP_CONFORMANCE_STRICT   2

◆ AP_HTTP_CONFORMANCE_UNSAFE

#define AP_HTTP_CONFORMANCE_UNSAFE   1

◆ AP_HTTP_CONFORMANCE_UNSET

#define AP_HTTP_CONFORMANCE_UNSET   0

◆ AP_HTTP_EXPECT_STRICT_DISABLE

#define AP_HTTP_EXPECT_STRICT_DISABLE   2

◆ AP_HTTP_EXPECT_STRICT_ENABLE

#define AP_HTTP_EXPECT_STRICT_ENABLE   1

◆ AP_HTTP_EXPECT_STRICT_UNSET

#define AP_HTTP_EXPECT_STRICT_UNSET   0

◆ AP_HTTP_METHODS_LENIENT

#define AP_HTTP_METHODS_LENIENT   1

◆ AP_HTTP_METHODS_REGISTERED

#define AP_HTTP_METHODS_REGISTERED   2

◆ AP_HTTP_METHODS_UNSET

#define AP_HTTP_METHODS_UNSET   0

◆ AP_MAXRANGES_DEFAULT

#define AP_MAXRANGES_DEFAULT   -2

◆ AP_MAXRANGES_NORANGES

#define AP_MAXRANGES_NORANGES   0

◆ AP_MAXRANGES_UNLIMITED

#define AP_MAXRANGES_UNLIMITED   -3

◆ AP_MAXRANGES_UNSET

#define AP_MAXRANGES_UNSET   -1

◆ AP_MERGE_TRAILERS_DISABLE

#define AP_MERGE_TRAILERS_DISABLE   2

◆ AP_MERGE_TRAILERS_ENABLE

#define AP_MERGE_TRAILERS_ENABLE   1

◆ AP_MERGE_TRAILERS_UNSET

#define AP_MERGE_TRAILERS_UNSET   0

◆ AP_TRACE_DISABLE

#define AP_TRACE_DISABLE   0

◆ AP_TRACE_ENABLE

#define AP_TRACE_ENABLE   1

◆ AP_TRACE_EXTENDED

#define AP_TRACE_EXTENDED   2

◆ AP_TRACE_UNSET

#define AP_TRACE_UNSET   -1

◆ ENABLE_MMAP_OFF

#define ENABLE_MMAP_OFF   (0)

◆ ENABLE_MMAP_ON

#define ENABLE_MMAP_ON   (1)

◆ ENABLE_MMAP_UNSET

#define ENABLE_MMAP_UNSET   (2)

◆ ENABLE_SENDFILE_OFF

#define ENABLE_SENDFILE_OFF   (0)

◆ ENABLE_SENDFILE_ON

#define ENABLE_SENDFILE_ON   (1)

◆ ENABLE_SENDFILE_UNSET

#define ENABLE_SENDFILE_UNSET   (2)

◆ HOSTNAME_LOOKUP_DOUBLE

#define HOSTNAME_LOOKUP_DOUBLE   2

◆ HOSTNAME_LOOKUP_OFF

#define HOSTNAME_LOOKUP_OFF   0

◆ HOSTNAME_LOOKUP_ON

#define HOSTNAME_LOOKUP_ON   1

◆ HOSTNAME_LOOKUP_UNSET

#define HOSTNAME_LOOKUP_UNSET   3

◆ USE_CANONICAL_NAME_DNS

#define USE_CANONICAL_NAME_DNS   (2)

◆ USE_CANONICAL_NAME_OFF

#define USE_CANONICAL_NAME_OFF   (0)

◆ USE_CANONICAL_NAME_ON

#define USE_CANONICAL_NAME_ON   (1)

◆ USE_CANONICAL_NAME_UNSET

#define USE_CANONICAL_NAME_UNSET   (3)

◆ USE_CANONICAL_PHYS_PORT_OFF

#define USE_CANONICAL_PHYS_PORT_OFF   (0)

◆ USE_CANONICAL_PHYS_PORT_ON

#define USE_CANONICAL_PHYS_PORT_ON   (1)

◆ USE_CANONICAL_PHYS_PORT_UNSET

#define USE_CANONICAL_PHYS_PORT_UNSET   (2)