Apache HTTPD
Macros | Functions | Variables
http_protocol.c File Reference
#include "apr.h"
#include "apr_strings.h"
#include "apr_buckets.h"
#include "apr_lib.h"
#include "apr_signal.h"
#include "apr_want.h"
#include "util_filter.h"
#include "ap_config.h"
#include "httpd.h"
#include "http_config.h"
#include "http_core.h"
#include "http_protocol.h"
#include "http_main.h"
#include "http_request.h"
#include "http_vhost.h"
#include "http_log.h"
#include "apr_date.h"
#include "util_charset.h"
#include "util_ebcdic.h"
#include "util_time.h"
#include "ap_mpm.h"
#include "mod_core.h"

Go to the source code of this file.

Macros

#define APR_WANT_STDIO   /* for sscanf */
 
#define APR_WANT_STRFUNC
 
#define APR_WANT_MEMFUNC
 
#define LEVEL_200   3
 
#define LEVEL_300   30
 
#define LEVEL_400   39
 
#define LEVEL_500   91
 
#define METHOD_NUMBER_FIRST   (M_INVALID + 1)
 
#define METHOD_NUMBER_LAST   62
 
#define UNKNOWN_METHOD   (-1)
 

Functions

void ap_hook_insert_error_filter (ap_HOOK_insert_error_filter_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_insert_error_filter (void)
 
void ap_run_insert_error_filter (request_rec *r)
 
static int is_mpm_running (void)
 
int ap_set_keepalive (request_rec *r)
 
ap_condition_e ap_condition_if_match (request_rec *r, apr_table_t *headers)
 
ap_condition_e ap_condition_if_unmodified_since (request_rec *r, apr_table_t *headers)
 
ap_condition_e ap_condition_if_none_match (request_rec *r, apr_table_t *headers)
 
ap_condition_e ap_condition_if_modified_since (request_rec *r, apr_table_t *headers)
 
ap_condition_e ap_condition_if_range (request_rec *r, apr_table_t *headers)
 
int ap_meets_conditions (request_rec *r)
 
static void register_one_method (apr_pool_t *p, const char *methname, int methnum)
 
static apr_status_t ap_method_registry_destroy (void *notused)
 
void ap_method_registry_init (apr_pool_t *p)
 
int ap_method_register (apr_pool_t *p, const char *methname)
 
static int lookup_builtin_method (const char *method, apr_size_t len)
 
int ap_method_number_of (const char *method)
 
const charap_method_name_of (apr_pool_t *p, int methnum)
 
static int index_of_response (int status)
 
int ap_index_of_response (int status)
 
const charap_get_status_line_ex (apr_pool_t *p, int status)
 
const charap_get_status_line (int status)
 
static charmake_allow (request_rec *r)
 
int ap_send_http_options (request_rec *r)
 
void ap_set_content_type (request_rec *r, const char *ct)
 
void ap_set_content_type_ex (request_rec *r, const char *ct, int trusted)
 
void ap_set_accept_ranges (request_rec *r)
 
static const charadd_optional_notes (request_rec *r, const char *prefix, const char *key, const char *suffix)
 
static const charget_canned_error_string (int status, request_rec *r, const char *location)
 
void ap_send_error_response (request_rec *r, int recursive_error)
 
ap_method_list_tap_make_method_list (apr_pool_t *p, int nelts)
 
void ap_copy_method_list (ap_method_list_t *dest, ap_method_list_t *src)
 
int ap_method_in_list (ap_method_list_t *l, const char *method)
 
void ap_method_list_add (ap_method_list_t *l, const char *method)
 
void ap_method_list_remove (ap_method_list_t *l, const char *method)
 
void ap_clear_method_list (ap_method_list_t *l)
 

Variables

static int *const aplog_module_index = &( http_module.module_index)
 
static const char *const status_lines [103]
 
struct { 
 
   apr_array_header_t *   link_insert_error_filter 
 
_hooks 
 
static apr_hash_tmethods_registry = NULL
 
static int cur_method_number = ( 26 + 1)
 

Macro Definition Documentation

◆ APR_WANT_MEMFUNC

#define APR_WANT_MEMFUNC

Definition at line 32 of file http_protocol.c.

◆ APR_WANT_STDIO

#define APR_WANT_STDIO   /* for sscanf */

Definition at line 30 of file http_protocol.c.

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 31 of file http_protocol.c.

◆ LEVEL_200

#define LEVEL_200   3

◆ LEVEL_300

#define LEVEL_300   30

◆ LEVEL_400

#define LEVEL_400   39

◆ LEVEL_500

#define LEVEL_500   91

◆ METHOD_NUMBER_FIRST

#define METHOD_NUMBER_FIRST   (M_INVALID + 1)

Definition at line 193 of file http_protocol.c.

◆ METHOD_NUMBER_LAST

#define METHOD_NUMBER_LAST   62

Definition at line 199 of file http_protocol.c.

◆ UNKNOWN_METHOD

#define UNKNOWN_METHOD   (-1)

Definition at line 756 of file http_protocol.c.

Function Documentation

◆ add_optional_notes()

static const char * add_optional_notes ( request_rec r,
const char prefix,
const char key,
const char suffix 
)
static

Definition at line 1116 of file http_protocol.c.

◆ ap_method_registry_destroy()

static apr_status_t ap_method_registry_destroy ( void *  notused)
static

no valid method

Definition at line 674 of file http_protocol.c.

◆ get_canned_error_string()

static const char * get_canned_error_string ( int  status,
request_rec r,
const char location 
)
static

Definition at line 1136 of file http_protocol.c.

◆ index_of_response()

static int index_of_response ( int  status)
static

Definition at line 989 of file http_protocol.c.

◆ is_mpm_running()

static int is_mpm_running ( void  )
static

Definition at line 201 of file http_protocol.c.

◆ lookup_builtin_method()

static int lookup_builtin_method ( const char method,
apr_size_t  len 
)
static

RFC 2616: HTTP

RFC 2616: HTTP

RFC 5789: PATCH Method for HTTP

RFC 2616: HTTP

RFC 2518: WebDAV

RFC 2518: WebDAV

RFC 3253: WebDAV Versioning

Definition at line 758 of file http_protocol.c.

◆ make_allow()

static char * make_allow ( request_rec r)
static

no valid method

Definition at line 1042 of file http_protocol.c.

◆ register_one_method()

static void register_one_method ( apr_pool_t p,
const char methname,
int  methnum 
)
static

Definition at line 662 of file http_protocol.c.

Variable Documentation

◆ [struct]

struct { ... } _hooks

◆ aplog_module_index

int* const aplog_module_index = &( http_module.module_index)
static

Definition at line 61 of file http_protocol.c.

◆ cur_method_number

int cur_method_number = ( 26 + 1)
static

Definition at line 659 of file http_protocol.c.

◆ link_insert_error_filter

apr_array_header_t* link_insert_error_filter

Definition at line 186 of file http_protocol.c.

◆ methods_registry

apr_hash_t* methods_registry = NULL
static

Singleton registry of additional methods. This maps new method names such as "MYGET" to methnums, which are int offsets into bitmasks.

This follows the same technique as standard M_GET, M_POST, etc. These are dynamically assigned when modules are loaded and <Limit GET MYGET> directives are processed.

Definition at line 658 of file http_protocol.c.

◆ status_lines

const char* const status_lines[103]
static

Definition at line 73 of file http_protocol.c.