Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
http_filters.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_connection.h"
#include "http_log.h"
#include "apr_date.h"
#include "util_charset.h"
#include "util_ebcdic.h"
#include "util_time.h"
#include "mod_core.h"

Go to the source code of this file.

Classes

struct  http_filter_ctx
 
struct  check_header_ctx
 
struct  header_struct
 
struct  header_filter_ctx
 
struct  outerror_filter_ctx_t
 

Macros

#define APR_WANT_STDIO   /* for sscanf */
 
#define APR_WANT_STRFUNC
 
#define APR_WANT_MEMFUNC
 

Typedefs

typedef struct http_filter_ctx http_ctx_t
 
typedef struct header_struct header_struct
 
typedef struct header_filter_ctx header_filter_ctx
 

Functions

static apr_status_t bail_out_on_error (http_ctx_t *ctx, ap_filter_t *f, int http_error)
 
static apr_status_t parse_chunk_size (http_ctx_t *ctx, const char *buffer, apr_size_t len, int linelimit, int strict)
 
static apr_status_t read_chunked_trailers (http_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *b, int merge)
 
apr_status_t ap_http_filter (ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
 
static int check_header (struct check_header_ctx *ctx, const char *name, const char **val)
 
static int check_headers_table (apr_table_t *t, struct check_header_ctx *ctx)
 
static APR_INLINE int check_headers (request_rec *r)
 
static int check_headers_recursion (request_rec *r)
 
static int form_header_field (header_struct *h, const char *fieldname, const char *fieldval)
 
static int uniq_field_values (void *d, const char *key, const char *val)
 
static void fixup_vary (request_rec *r)
 
static apr_status_t send_all_header_fields (header_struct *h, const request_rec *r)
 
static apr_status_t validate_status_line (request_rec *r)
 
static void basic_http_header_check (request_rec *r, const char **protocol)
 
static void basic_http_header (request_rec *r, apr_bucket_brigade *bb, const char *protocol)
 
void ap_basic_http_header (request_rec *r, apr_bucket_brigade *bb)
 
static void terminate_header (apr_bucket_brigade *bb)
 
int ap_send_http_trace (request_rec *r)
 
apr_status_t ap_http_header_filter (ap_filter_t *f, apr_bucket_brigade *b)
 
int ap_map_http_request_error (apr_status_t rv, int status)
 
int ap_discard_request_body (request_rec *r)
 
int ap_setup_client_block (request_rec *r, int read_policy)
 
int ap_should_client_block (request_rec *r)
 
long ap_get_client_block (request_rec *r, char *buffer, apr_size_t bufsiz)
 
apr_status_t ap_http_outerror_filter (ap_filter_t *f, apr_bucket_brigade *b)
 

Variables

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

Macro Definition Documentation

◆ APR_WANT_MEMFUNC

#define APR_WANT_MEMFUNC

Definition at line 29 of file http_filters.c.

◆ APR_WANT_STDIO

#define APR_WANT_STDIO   /* for sscanf */

Definition at line 27 of file http_filters.c.

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 28 of file http_filters.c.

Typedef Documentation

◆ header_filter_ctx

◆ header_struct

◆ http_ctx_t

Function Documentation

◆ bail_out_on_error()

static apr_status_t bail_out_on_error ( http_ctx_t ctx,
ap_filter_t f,
int  http_error 
)
static

< Origin response

Definition at line 88 of file http_filters.c.

◆ basic_http_header()

static void basic_http_header ( request_rec r,
apr_bucket_brigade bb,
const char protocol 
)
static

< No proxy

Definition at line 1071 of file http_filters.c.

◆ basic_http_header_check()

static void basic_http_header_check ( request_rec r,
const char **  protocol 
)
static

Definition at line 1027 of file http_filters.c.

◆ check_header()

static int check_header ( struct check_header_ctx ctx,
const char name,
const char **  val 
)
static

Definition at line 697 of file http_filters.c.

◆ check_headers()

static APR_INLINE int check_headers ( request_rec r)
static

Check headers for HTTP conformance

Returns
1 if ok, 0 if bad

Definition at line 776 of file http_filters.c.

◆ check_headers_recursion()

static int check_headers_recursion ( request_rec r)
static

Definition at line 800 of file http_filters.c.

◆ check_headers_table()

static int check_headers_table ( apr_table_t t,
struct check_header_ctx ctx 
)
static

Definition at line 754 of file http_filters.c.

◆ fixup_vary()

static void fixup_vary ( request_rec r)
static

Definition at line 908 of file http_filters.c.

◆ form_header_field()

static int form_header_field ( header_struct h,
const char fieldname,
const char fieldval 
)
static

Definition at line 820 of file http_filters.c.

◆ parse_chunk_size()

static apr_status_t parse_chunk_size ( http_ctx_t ctx,
const char buffer,
apr_size_t  len,
int  linelimit,
int  strict 
)
static

Parse a chunk line with optional extension, detect overflow. There are several error cases: 1) If the chunk link is misformatted, APR_EINVAL is returned. 2) If the conversion would require too many bits, APR_EGENERAL is returned. 3) If the conversion used the correct number of bits, but an overflow caused only the sign bit to flip, then APR_ENOSPC is returned. A negative chunk length always indicates an overflow error.

Definition at line 137 of file http_filters.c.

◆ read_chunked_trailers()

static apr_status_t read_chunked_trailers ( http_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade b,
int  merge 
)
static

Definition at line 293 of file http_filters.c.

◆ send_all_header_fields()

static apr_status_t send_all_header_fields ( header_struct h,
const request_rec r 
)
static

Definition at line 930 of file http_filters.c.

◆ terminate_header()

static void terminate_header ( apr_bucket_brigade bb)
static

Definition at line 1173 of file http_filters.c.

◆ uniq_field_values()

static int uniq_field_values ( void *  d,
const char key,
const char val 
)
static

Definition at line 857 of file http_filters.c.

◆ validate_status_line()

static apr_status_t validate_status_line ( request_rec r)
static

Definition at line 995 of file http_filters.c.

Variable Documentation

◆ aplog_module_index

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

Definition at line 58 of file http_filters.c.