Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
util_filter.c File Reference
#include "apr_want.h"
#include "apr_lib.h"
#include "apr_hash.h"
#include "apr_strings.h"
#include "httpd.h"
#include "http_config.h"
#include "http_core.h"
#include "http_log.h"
#include "util_filter.h"
#include "ap_hooks.h"

Go to the source code of this file.

Classes

struct  filter_trie_child_ptr
 
struct  filter_trie_node
 

Macros

#define APR_WANT_STRFUNC
 
#define FILTER_POOL   apr_hook_global_pool
 
#define INSERT_BEFORE(f, before_this)
 
#define APLOG_MODULE_INDEX   AP_CORE_MODULE_INDEX
 
#define TRIE_INITIAL_SIZE   4
 

Typedefs

typedef struct filter_trie_node filter_trie_node
 

Functions

static void trie_node_link (apr_pool_t *p, filter_trie_node *parent, filter_trie_node *child, int c)
 
static filter_trie_nodetrie_node_alloc (apr_pool_t *p, filter_trie_node *parent, char c)
 
static apr_status_t filter_cleanup (void *ctx)
 
static ap_filter_rec_tget_filter_handle (const char *name, const filter_trie_node *filter_set)
 
ap_filter_rec_tap_get_output_filter_handle (const char *name)
 
ap_filter_rec_tap_get_input_filter_handle (const char *name)
 
static ap_filter_rec_tregister_filter (const char *name, ap_filter_func filter_func, ap_init_filter_func filter_init, ap_filter_type ftype, filter_trie_node **reg_filter_set)
 
ap_filter_rec_tap_register_input_filter (const char *name, ap_in_filter_func filter_func, ap_init_filter_func filter_init, ap_filter_type ftype)
 
ap_filter_rec_tap_register_output_filter (const char *name, ap_out_filter_func filter_func, ap_init_filter_func filter_init, ap_filter_type ftype)
 
ap_filter_rec_tap_register_output_filter_protocol (const char *name, ap_out_filter_func filter_func, ap_init_filter_func filter_init, ap_filter_type ftype, unsigned int proto_flags)
 
static ap_filter_tadd_any_filter_handle (ap_filter_rec_t *frec, void *ctx, request_rec *r, conn_rec *c, ap_filter_t **r_filters, ap_filter_t **p_filters, ap_filter_t **c_filters)
 
static ap_filter_tadd_any_filter (const char *name, void *ctx, request_rec *r, conn_rec *c, const filter_trie_node *reg_filter_set, ap_filter_t **r_filters, ap_filter_t **p_filters, ap_filter_t **c_filters)
 
ap_filter_tap_add_input_filter (const char *name, void *ctx, request_rec *r, conn_rec *c)
 
ap_filter_tap_add_input_filter_handle (ap_filter_rec_t *f, void *ctx, request_rec *r, conn_rec *c)
 
ap_filter_tap_add_output_filter (const char *name, void *ctx, request_rec *r, conn_rec *c)
 
ap_filter_tap_add_output_filter_handle (ap_filter_rec_t *f, void *ctx, request_rec *r, conn_rec *c)
 
static void remove_any_filter (ap_filter_t *f, ap_filter_t **r_filt, ap_filter_t **p_filt, ap_filter_t **c_filt)
 
void ap_remove_input_filter (ap_filter_t *f)
 
void ap_remove_output_filter (ap_filter_t *f)
 
apr_status_t ap_remove_input_filter_byhandle (ap_filter_t *next, const char *handle)
 
apr_status_t ap_remove_output_filter_byhandle (ap_filter_t *next, const char *handle)
 
apr_status_t ap_get_brigade (ap_filter_t *next, apr_bucket_brigade *bb, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
 
apr_status_t ap_pass_brigade (ap_filter_t *next, apr_bucket_brigade *bb)
 
apr_status_t ap_pass_brigade_fchk (request_rec *r, apr_bucket_brigade *bb, const char *fmt,...)
 
apr_status_t ap_save_brigade (ap_filter_t *f, apr_bucket_brigade **saveto, apr_bucket_brigade **b, apr_pool_t *p)
 
apr_status_t ap_filter_flush (apr_bucket_brigade *bb, void *ctx)
 
apr_status_t ap_fflush (ap_filter_t *f, apr_bucket_brigade *bb)
 
apr_status_t ap_fputstrs (ap_filter_t *f, apr_bucket_brigade *bb,...)
 
apr_status_t ap_fprintf (ap_filter_t *f, apr_bucket_brigade *bb, const char *fmt,...)
 
void ap_filter_protocol (ap_filter_t *f, unsigned int flags)
 

Variables

static filter_trie_noderegistered_output_filters = NULL
 
static filter_trie_noderegistered_input_filters = NULL
 

Macro Definition Documentation

◆ APLOG_MODULE_INDEX

#define APLOG_MODULE_INDEX   AP_CORE_MODULE_INDEX

Definition at line 51 of file util_filter.c.

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 17 of file util_filter.c.

◆ FILTER_POOL

#define FILTER_POOL   apr_hook_global_pool

Definition at line 32 of file util_filter.c.

◆ INSERT_BEFORE

#define INSERT_BEFORE (   f,
  before_this 
)
Value:
((before_this) == NULL \
|| (before_this)->frec->ftype > (f)->frec->ftype \
|| (before_this)->r != (f)->r)
request_rec * r
apr_file_t * f
apr_size_t size
return NULL
Definition mod_so.c:359

Definition at line 41 of file util_filter.c.

◆ TRIE_INITIAL_SIZE

#define TRIE_INITIAL_SIZE   4

Definition at line 71 of file util_filter.c.

Typedef Documentation

◆ filter_trie_node

Definition at line 53 of file util_filter.c.

Function Documentation

◆ add_any_filter()

static ap_filter_t * add_any_filter ( const char name,
void *  ctx,
request_rec r,
conn_rec c,
const filter_trie_node reg_filter_set,
ap_filter_t **  r_filters,
ap_filter_t **  p_filters,
ap_filter_t **  c_filters 
)
static

Definition at line 362 of file util_filter.c.

◆ add_any_filter_handle()

static ap_filter_t * add_any_filter_handle ( ap_filter_rec_t frec,
void *  ctx,
request_rec r,
conn_rec c,
ap_filter_t **  r_filters,
ap_filter_t **  p_filters,
ap_filter_t **  c_filters 
)
static

Definition at line 282 of file util_filter.c.

◆ ap_fprintf()

apr_status_t ap_fprintf ( ap_filter_t f,
apr_bucket_brigade bb,
const char fmt,
  ... 
)

Definition at line 717 of file util_filter.c.

◆ ap_pass_brigade_fchk()

apr_status_t ap_pass_brigade_fchk ( request_rec r,
apr_bucket_brigade bb,
const char fmt,
  ... 
)

< Module has handled this stage.

Definition at line 603 of file util_filter.c.

◆ filter_cleanup()

static apr_status_t filter_cleanup ( void *  ctx)
static

Definition at line 147 of file util_filter.c.

◆ get_filter_handle()

static ap_filter_rec_t * get_filter_handle ( const char name,
const filter_trie_node filter_set 
)
static

Definition at line 154 of file util_filter.c.

◆ register_filter()

static ap_filter_rec_t * register_filter ( const char name,
ap_filter_func  filter_func,
ap_init_filter_func  filter_init,
ap_filter_type  ftype,
filter_trie_node **  reg_filter_set 
)
static

Definition at line 203 of file util_filter.c.

◆ remove_any_filter()

static void remove_any_filter ( ap_filter_t f,
ap_filter_t **  r_filt,
ap_filter_t **  p_filt,
ap_filter_t **  c_filt 
)
static

Definition at line 445 of file util_filter.c.

◆ trie_node_alloc()

static filter_trie_node * trie_node_alloc ( apr_pool_t p,
filter_trie_node parent,
char  c 
)
static

Definition at line 112 of file util_filter.c.

◆ trie_node_link()

static void trie_node_link ( apr_pool_t p,
filter_trie_node parent,
filter_trie_node child,
int  c 
)
static

Definition at line 75 of file util_filter.c.

Variable Documentation

◆ registered_input_filters

filter_trie_node* registered_input_filters = NULL
static

Definition at line 144 of file util_filter.c.

◆ registered_output_filters

filter_trie_node* registered_output_filters = NULL
static

Definition at line 143 of file util_filter.c.