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

Go to the source code of this file.

Classes

struct  ap_filter_provider_t
 is a filter provider, as defined and implemented by mod_filter. More...
 
struct  provider_ctx
 
struct  harness_ctx
 
struct  mod_filter_chain
 
struct  mod_filter_cfg
 
struct  mod_filter_ctx
 

Macros

#define APR_WANT_STRFUNC
 

Typedefs

typedef struct provider_ctx provider_ctx
 
typedef struct mod_filter_chain mod_filter_chain
 

Functions

static void filter_trace (conn_rec *c, int debug, const char *fname, apr_bucket_brigade *bb)
 
static int filter_init (ap_filter_t *f)
 
static int filter_lookup (ap_filter_t *f, ap_filter_rec_t *filter)
 
static apr_status_t filter_harness (ap_filter_t *f, apr_bucket_brigade *bb)
 
static const charfilter_protocol (cmd_parms *cmd, void *CFG, const char *fname, const char *pname, const char *proto)
 
static const charfilter_declare (cmd_parms *cmd, void *CFG, const char *fname, const char *place)
 
static const charadd_filter (cmd_parms *cmd, void *CFG, const char *fname, const char *pname, const char *expr, const char **types)
 
static const charfilter_provider (cmd_parms *cmd, void *CFG, const char *fname, const char *pname, const char *expr)
 
static const charfilter_chain (cmd_parms *cmd, void *CFG, const char *arg)
 
static const charfilter_bytype1 (cmd_parms *cmd, void *CFG, const char *pname, const char **types)
 
static const charfilter_bytype (cmd_parms *cmd, void *CFG, int argc, char *const argv[])
 
static const charfilter_debug (cmd_parms *cmd, void *CFG, const char *fname, const char *level)
 
static void filter_insert (request_rec *r)
 
static void filter_hooks (apr_pool_t *pool)
 
static void * filter_config (apr_pool_t *pool, char *x)
 
static void * filter_merge (apr_pool_t *pool, void *BASE, void *ADD)
 

Variables

static const command_rec filter_cmds []
 
static int *const aplog_module_index = &( filter_module.module_index)
 

Macro Definition Documentation

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 17 of file mod_filter.c.

Typedef Documentation

◆ mod_filter_chain

◆ provider_ctx

we need provider_ctx to save ctx values set by providers in filter_init

Definition at line 50 of file mod_filter.c.

Function Documentation

◆ add_filter()

static const char * add_filter ( cmd_parms cmd,
void *  CFG,
const char fname,
const char pname,
const char expr,
const char **  types 
)
static

Definition at line 435 of file mod_filter.c.

◆ filter_bytype()

static const char * filter_bytype ( cmd_parms cmd,
void *  CFG,
int  argc,
char *const  argv[] 
)
static

Definition at line 600 of file mod_filter.c.

◆ filter_bytype1()

static const char * filter_bytype1 ( cmd_parms cmd,
void *  CFG,
const char pname,
const char **  types 
)
static

Definition at line 573 of file mod_filter.c.

◆ filter_chain()

static const char * filter_chain ( cmd_parms cmd,
void *  CFG,
const char arg 
)
static

IG: Add a NULL provider to the beginning so that we can ensure that we'll empty everything before this when doing config merges later

IG: Prepend a NULL provider to the beginning as above

Definition at line 498 of file mod_filter.c.

◆ filter_config()

static void * filter_config ( apr_pool_t pool,
char x 
)
static

Definition at line 682 of file mod_filter.c.

◆ filter_debug()

static const char * filter_debug ( cmd_parms cmd,
void *  CFG,
const char fname,
const char level 
)
static

Definition at line 623 of file mod_filter.c.

◆ filter_declare()

static const char * filter_declare ( cmd_parms cmd,
void *  CFG,
const char fname,
const char place 
)
static

Definition at line 402 of file mod_filter.c.

◆ filter_harness()

static apr_status_t filter_harness ( ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 274 of file mod_filter.c.

◆ filter_hooks()

static void filter_hooks ( apr_pool_t pool)
static

Definition at line 677 of file mod_filter.c.

◆ filter_init()

static int filter_init ( ap_filter_t f)
static

< Module has handled this stage.

< Module has handled this stage.

Definition at line 100 of file mod_filter.c.

◆ filter_insert()

static void filter_insert ( request_rec r)
static

IG: Now that we've merged to the final config, go one last time through the chain, and prune out the NULL filters

Definition at line 637 of file mod_filter.c.

◆ filter_lookup()

static int filter_lookup ( ap_filter_t f,
ap_filter_rec_t filter 
)
static

Definition at line 135 of file mod_filter.c.

◆ filter_merge()

static void * filter_merge ( apr_pool_t pool,
void *  BASE,
void *  ADD 
)
static

Filter out merged chain resets

Definition at line 690 of file mod_filter.c.

◆ filter_protocol()

static const char * filter_protocol ( cmd_parms cmd,
void *  CFG,
const char fname,
const char pname,
const char proto 
)
static

Definition at line 331 of file mod_filter.c.

◆ filter_provider()

static const char * filter_provider ( cmd_parms cmd,
void *  CFG,
const char fname,
const char pname,
const char expr 
)
static

Definition at line 491 of file mod_filter.c.

◆ filter_trace()

static void filter_trace ( conn_rec c,
int  debug,
const char fname,
apr_bucket_brigade bb 
)
static

Definition at line 77 of file mod_filter.c.

Variable Documentation

◆ aplog_module_index

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

Definition at line 759 of file mod_filter.c.

◆ filter_cmds

const command_rec filter_cmds[]
static
Initial value:
= {
{ "FilterDeclare" , filter_declare , NULL , 2 , TAKE12, "filter-name [filter-type]" },
{ "FilterProvider" , filter_provider , NULL , 2 , TAKE3, "filter-name provider-name match-expression" },
{ "FilterChain" , filter_chain , NULL , 2 , ITERATE, "list of filter names with optional [+-=!@]" },
{ "FilterTrace" , filter_debug , NULL , 128 | 64 , TAKE2, "filter-name debug-level" },
{ "AddOutputFilterByType" , filter_bytype , NULL , 4 , TAKE_ARGV, "output filter name followed by one or more content-types" },
{ "FilterProtocol" , filter_protocol , NULL , 2 , TAKE23, "filter-name [provider-name] protocol-args" },
{ NULL }
}
@ TAKE12
Definition http_config.h:61
@ TAKE23
Definition http_config.h:63
@ TAKE3
Definition http_config.h:62
@ TAKE_ARGV
Definition http_config.h:66
@ TAKE2
Definition http_config.h:52
@ ITERATE
Definition http_config.h:53
static const char * filter_protocol(cmd_parms *cmd, void *CFG, const char *fname, const char *pname, const char *proto)
Definition mod_filter.c:331
static const char * filter_provider(cmd_parms *cmd, void *CFG, const char *fname, const char *pname, const char *expr)
Definition mod_filter.c:491
static const char * filter_chain(cmd_parms *cmd, void *CFG, const char *arg)
Definition mod_filter.c:498
static const char * filter_bytype(cmd_parms *cmd, void *CFG, int argc, char *const argv[])
Definition mod_filter.c:600
static const char * filter_debug(cmd_parms *cmd, void *CFG, const char *fname, const char *level)
Definition mod_filter.c:623
static const char * filter_declare(cmd_parms *cmd, void *CFG, const char *fname, const char *place)
Definition mod_filter.c:402
return NULL
Definition mod_so.c:359

Definition at line 741 of file mod_filter.c.