Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
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_strmatch.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 "mod_core.h"
#include "util_charset.h"
#include "util_ebcdic.h"
#include "scoreboard.h"

Go to the source code of this file.

Classes

struct  content_length_ctx
 
struct  old_write_filter_ctx
 
struct  ap_vrprintf_data
 
struct  hdr_ptr
 

Macros

#define APR_WANT_STDIO   /* for sscanf */
 
#define APR_WANT_STRFUNC
 
#define APR_WANT_MEMFUNC
 
#define APLOG_MODULE_INDEX   AP_CORE_MODULE_INDEX
 
#define LOG_NAME_MAX_LEN   80
 

Typedefs

typedef struct hdr_ptr hdr_ptr
 

Functions

void ap_setup_make_content_type (apr_pool_t *pool)
 
const charap_make_content_type (request_rec *r, const char *type)
 
void ap_set_content_length (request_rec *r, apr_off_t clength)
 
apr_time_t ap_rationalize_mtime (request_rec *r, apr_time_t mtime)
 
apr_status_t ap_rgetline_core (char **s, apr_size_t n, apr_size_t *read, request_rec *r, int flags, apr_bucket_brigade *bb)
 
int ap_getline (char *s, int n, request_rec *r, int flags)
 
void ap_parse_uri (request_rec *r, const char *uri)
 
static int field_name_len (const char *field)
 
static int read_request_line (request_rec *r, apr_bucket_brigade *bb)
 
int ap_parse_request_line (request_rec *r)
 
int ap_check_request_header (request_rec *r)
 
static int table_do_fn_check_lengths (void *r_, const char *key, const char *value)
 
void ap_get_mime_headers_core (request_rec *r, apr_bucket_brigade *bb)
 
void ap_get_mime_headers (request_rec *r)
 
request_recap_create_request (conn_rec *conn)
 
static void apply_server_config (request_rec *r)
 
request_recap_read_request (conn_rec *conn)
 
int ap_post_read_request (request_rec *r)
 
static void strip_headers_request_body (request_rec *rnew)
 
void ap_set_sub_req_protocol (request_rec *rnew, const request_rec *r)
 
static void end_output_stream (request_rec *r, int status)
 
void ap_finalize_sub_req_protocol (request_rec *sub)
 
void ap_finalize_request_protocol (request_rec *r)
 
void ap_note_auth_failure (request_rec *r)
 
void ap_note_basic_auth_failure (request_rec *r)
 
void ap_note_digest_auth_failure (request_rec *r)
 
int ap_get_basic_auth_pw (request_rec *r, const char **pw)
 
apr_status_t ap_get_basic_auth_components (const request_rec *r, const char **username, const char **password)
 
apr_status_t ap_content_length_filter (ap_filter_t *f, apr_bucket_brigade *b)
 
apr_status_t ap_send_fd (apr_file_t *fd, request_rec *r, apr_off_t offset, apr_size_t len, apr_size_t *nbytes)
 
apr_status_t ap_old_write_filter (ap_filter_t *f, apr_bucket_brigade *bb)
 
static ap_filter_tinsert_old_write_filter (request_rec *r)
 
static apr_status_t buffer_output (request_rec *r, const char *str, apr_size_t len)
 
int ap_rputc (int c, request_rec *r)
 
int ap_rwrite (const void *buf, int nbyte, request_rec *r)
 
static int r_flush (apr_vformatter_buff_t *buff)
 
int ap_vrprintf (request_rec *r, const char *fmt, va_list va)
 
int ap_rprintf (request_rec *r, const char *fmt,...)
 
int ap_rvputs (request_rec *r,...)
 
int ap_rflush (request_rec *r)
 
void ap_set_last_modified (request_rec *r)
 
static int send_header (void *data, const char *key, const char *val)
 
void ap_send_interim_response (request_rec *r, int send_headers)
 
static int protocol_cmp (const apr_array_header_t *preferences, const char *proto1, const char *proto2)
 
const charap_get_protocol (conn_rec *c)
 
apr_status_t ap_get_protocol_upgrades (conn_rec *c, request_rec *r, server_rec *s, int report_all, const apr_array_header_t **pupgrades)
 
const charap_select_protocol (conn_rec *c, request_rec *r, server_rec *s, const apr_array_header_t *choices)
 
apr_status_t ap_switch_protocol (conn_rec *c, request_rec *r, server_rec *s, const char *protocol)
 
int ap_is_allowed_protocol (conn_rec *c, request_rec *r, server_rec *s, const char *protocol)
 
void ap_hook_pre_read_request (ap_HOOK_pre_read_request_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_pre_read_request (void)
 
void ap_run_pre_read_request (request_rec *r, conn_rec *c)
 
void ap_hook_post_read_request (ap_HOOK_post_read_request_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_post_read_request (void)
 
int ap_run_post_read_request (request_rec *r)
 
void ap_hook_log_transaction (ap_HOOK_log_transaction_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_log_transaction (void)
 
int ap_run_log_transaction (request_rec *r)
 
void ap_hook_http_scheme (ap_HOOK_http_scheme_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_http_scheme (void)
 
const charap_run_http_scheme (const request_rec *r)
 
void ap_hook_default_port (ap_HOOK_default_port_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_default_port (void)
 
unsigned short ap_run_default_port (const request_rec *r)
 
void ap_hook_note_auth_failure (ap_HOOK_note_auth_failure_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_note_auth_failure (void)
 
int ap_run_note_auth_failure (request_rec *r, const char *auth_type)
 
void ap_hook_protocol_propose (ap_HOOK_protocol_propose_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_protocol_propose (void)
 
int ap_run_protocol_propose (conn_rec *c, request_rec *r, server_rec *s, const apr_array_header_t *offers, apr_array_header_t *proposals)
 
void ap_hook_protocol_switch (ap_HOOK_protocol_switch_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_protocol_switch (void)
 
int ap_run_protocol_switch (conn_rec *c, request_rec *r, server_rec *s, const char *protocol)
 
void ap_hook_protocol_get (ap_HOOK_protocol_get_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_protocol_get (void)
 
const charap_run_protocol_get (const conn_rec *c)
 

Variables

struct { 
 
   apr_array_header_t *   link_pre_read_request 
 
   apr_array_header_t *   link_post_read_request 
 
   apr_array_header_t *   link_log_transaction 
 
   apr_array_header_t *   link_http_scheme 
 
   apr_array_header_t *   link_default_port 
 
   apr_array_header_t *   link_note_auth_failure 
 
   apr_array_header_t *   link_protocol_propose 
 
   apr_array_header_t *   link_protocol_switch 
 
   apr_array_header_t *   link_protocol_get 
 
_hooks 
 
ap_filter_rec_tap_old_write_func = NULL
 
static const charneedcset []
 
static const apr_strmatch_pattern ** needcset_patterns
 
static const apr_strmatch_patterncharset_pattern
 

Macro Definition Documentation

◆ APLOG_MODULE_INDEX

#define APLOG_MODULE_INDEX   AP_CORE_MODULE_INDEX

Definition at line 61 of file protocol.c.

◆ APR_WANT_MEMFUNC

#define APR_WANT_MEMFUNC

Definition at line 33 of file protocol.c.

◆ APR_WANT_STDIO

#define APR_WANT_STDIO   /* for sscanf */

Definition at line 31 of file protocol.c.

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 32 of file protocol.c.

◆ LOG_NAME_MAX_LEN

#define LOG_NAME_MAX_LEN   80

Definition at line 646 of file protocol.c.

Typedef Documentation

◆ hdr_ptr

Function Documentation

◆ ap_rprintf()

int ap_rprintf ( request_rec r,
const char fmt,
  ... 
)

Definition at line 2205 of file protocol.c.

◆ apply_server_config()

static void apply_server_config ( request_rec r)
static

Definition at line 1413 of file protocol.c.

◆ buffer_output()

static apr_status_t buffer_output ( request_rec r,
const char str,
apr_size_t  len 
)
static

Definition at line 2084 of file protocol.c.

◆ end_output_stream()

static void end_output_stream ( request_rec r,
int  status 
)
static

< Module has handled this stage.

Definition at line 1692 of file protocol.c.

◆ field_name_len()

static int field_name_len ( const char field)
static

Definition at line 647 of file protocol.c.

◆ insert_old_write_filter()

static ap_filter_t * insert_old_write_filter ( request_rec r)
static

Definition at line 2057 of file protocol.c.

◆ protocol_cmp()

static int protocol_cmp ( const apr_array_header_t preferences,
const char proto1,
const char proto2 
)
static

Definition at line 2377 of file protocol.c.

◆ r_flush()

static int r_flush ( apr_vformatter_buff_t buff)
static

Definition at line 2152 of file protocol.c.

◆ read_request_line()

static int read_request_line ( request_rec r,
apr_bucket_brigade bb 
)
static

Definition at line 655 of file protocol.c.

◆ send_header()

static int send_header ( void *  data,
const char key,
const char val 
)
static

Definition at line 2308 of file protocol.c.

◆ strip_headers_request_body()

static void strip_headers_request_body ( request_rec rnew)
static

Definition at line 1634 of file protocol.c.

◆ table_do_fn_check_lengths()

static int table_do_fn_check_lengths ( void *  r_,
const char key,
const char value 
)
static

Definition at line 1073 of file protocol.c.

Variable Documentation

◆ [struct]

struct { ... } _hooks

◆ charset_pattern

const apr_strmatch_pattern* charset_pattern
static

Definition at line 85 of file protocol.c.

◆ link_default_port

apr_array_header_t* link_default_port

Definition at line 73 of file protocol.c.

◆ link_http_scheme

apr_array_header_t* link_http_scheme

Definition at line 73 of file protocol.c.

◆ link_log_transaction

apr_array_header_t* link_log_transaction

Definition at line 73 of file protocol.c.

◆ link_note_auth_failure

apr_array_header_t* link_note_auth_failure

Definition at line 73 of file protocol.c.

◆ link_post_read_request

apr_array_header_t* link_post_read_request

Definition at line 73 of file protocol.c.

◆ link_pre_read_request

apr_array_header_t* link_pre_read_request

Definition at line 73 of file protocol.c.

◆ link_protocol_get

apr_array_header_t* link_protocol_get

Definition at line 73 of file protocol.c.

◆ link_protocol_propose

apr_array_header_t* link_protocol_propose

Definition at line 73 of file protocol.c.

◆ link_protocol_switch

apr_array_header_t* link_protocol_switch

Definition at line 73 of file protocol.c.

◆ needcset

const char* needcset[]
static
Initial value:
= {
"text/plain",
"text/html",
}
return NULL
Definition mod_so.c:359

Definition at line 79 of file protocol.c.

◆ needcset_patterns

const apr_strmatch_pattern** needcset_patterns
static

Definition at line 84 of file protocol.c.