Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
mod_ext_filter.c File Reference
#include "httpd.h"
#include "http_config.h"
#include "http_log.h"
#include "http_protocol.h"
#include "http_core.h"
#include "apr_buckets.h"
#include "util_filter.h"
#include "util_script.h"
#include "util_time.h"
#include "apr_strings.h"
#include "apr_hash.h"
#include "apr_lib.h"
#include "apr_poll.h"
#include "apr_want.h"

Go to the source code of this file.

Classes

struct  ef_server_t
 
struct  ef_filter_t
 
struct  ef_dir_t
 
struct  ef_ctx_t
 

Macros

#define APR_WANT_STRFUNC
 
#define INTYPE_ALL   (char *)1
 
#define OUTTYPE_UNCHANGED   (char *)1
 
#define ERRFN_USERDATA_KEY   "EXTFILTCHILDERRFN"
 

Typedefs

typedef struct ef_server_t ef_server_t
 
typedef struct ef_filter_t ef_filter_t
 
typedef struct ef_dir_t ef_dir_t
 
typedef struct ef_ctx_t ef_ctx_t
 

Functions

static apr_status_t ef_output_filter (ap_filter_t *, apr_bucket_brigade *)
 
static apr_status_t ef_input_filter (ap_filter_t *, apr_bucket_brigade *, ap_input_mode_t, apr_read_type_e, apr_off_t)
 
static void * create_ef_dir_conf (apr_pool_t *p, char *dummy)
 
static void * create_ef_server_conf (apr_pool_t *p, server_rec *s)
 
static void * merge_ef_dir_conf (apr_pool_t *p, void *basev, void *overridesv)
 
static const charadd_options (cmd_parms *cmd, void *in_dc, const char *arg)
 
static const charparse_cmd (apr_pool_t *p, const char **args, ef_filter_t *filter)
 
static const chardefine_filter (cmd_parms *cmd, void *dummy, const char *args)
 
static int ef_init (apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *main_s)
 
static void register_hooks (apr_pool_t *p)
 
static apr_status_t set_resource_limits (request_rec *r, apr_procattr_t *procattr)
 
static apr_status_t ef_close_file (void *vfile)
 
static void child_errfn (apr_pool_t *pool, apr_status_t err, const char *description)
 
static apr_status_t init_ext_filter_process (ap_filter_t *f)
 
static const charget_cfg_string (ef_dir_t *dc, ef_filter_t *filter, apr_pool_t *p)
 
static ef_filter_tfind_filter_def (const server_rec *s, const char *fname)
 
static apr_status_t init_filter_instance (ap_filter_t *f)
 
static apr_status_t drain_available_output (ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t pass_data_to_filter (ap_filter_t *f, const char *data, apr_size_t len, apr_bucket_brigade *bb)
 
static int ef_unified_filter (ap_filter_t *f, apr_bucket_brigade *bb)
 

Variables

static const server_recmain_server
 
static const command_rec cmds []
 
static int *const aplog_module_index = &( ext_filter_module.module_index)
 

Macro Definition Documentation

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 35 of file mod_ext_filter.c.

◆ ERRFN_USERDATA_KEY

#define ERRFN_USERDATA_KEY   "EXTFILTCHILDERRFN"

Definition at line 83 of file mod_ext_filter.c.

◆ INTYPE_ALL

#define INTYPE_ALL   (char *)1

Definition at line 52 of file mod_ext_filter.c.

◆ OUTTYPE_UNCHANGED

#define OUTTYPE_UNCHANGED   (char *)1

Definition at line 54 of file mod_ext_filter.c.

Typedef Documentation

◆ ef_ctx_t

◆ ef_dir_t

◆ ef_filter_t

◆ ef_server_t

Function Documentation

◆ add_options()

static const char * add_options ( cmd_parms cmd,
void *  in_dc,
const char arg 
)
static

Definition at line 127 of file mod_ext_filter.c.

◆ child_errfn()

static void child_errfn ( apr_pool_t pool,
apr_status_t  err,
const char description 
)
static

Definition at line 394 of file mod_ext_filter.c.

◆ create_ef_dir_conf()

static void * create_ef_dir_conf ( apr_pool_t p,
char dummy 
)
static

Definition at line 85 of file mod_ext_filter.c.

◆ create_ef_server_conf()

static void * create_ef_server_conf ( apr_pool_t p,
server_rec s 
)
static

Definition at line 95 of file mod_ext_filter.c.

◆ define_filter()

static const char * define_filter ( cmd_parms cmd,
void *  dummy,
const char args 
)
static

Definition at line 202 of file mod_ext_filter.c.

◆ drain_available_output()

static apr_status_t drain_available_output ( ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 640 of file mod_ext_filter.c.

◆ ef_close_file()

static apr_status_t ef_close_file ( void *  vfile)
static

Definition at line 389 of file mod_ext_filter.c.

◆ ef_init()

static int ef_init ( apr_pool_t p,
apr_pool_t plog,
apr_pool_t ptemp,
server_rec main_s 
)
static

< Module has handled this stage.

Definition at line 351 of file mod_ext_filter.c.

◆ ef_input_filter()

static apr_status_t ef_input_filter ( ap_filter_t f,
apr_bucket_brigade bb,
ap_input_mode_t  mode,
apr_read_type_e  block,
apr_off_t  readbytes 
)
static

Definition at line 892 of file mod_ext_filter.c.

◆ ef_output_filter()

static apr_status_t ef_output_filter ( ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 840 of file mod_ext_filter.c.

◆ ef_unified_filter()

static int ef_unified_filter ( ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 735 of file mod_ext_filter.c.

◆ find_filter_def()

static ef_filter_t * find_filter_def ( const server_rec s,
const char fname 
)
static

Definition at line 539 of file mod_ext_filter.c.

◆ get_cfg_string()

static const char * get_cfg_string ( ef_dir_t dc,
ef_filter_t filter,
apr_pool_t p 
)
static

Definition at line 521 of file mod_ext_filter.c.

◆ init_ext_filter_process()

static apr_status_t init_ext_filter_process ( ap_filter_t f)
static

Definition at line 417 of file mod_ext_filter.c.

◆ init_filter_instance()

static apr_status_t init_filter_instance ( ap_filter_t f)
static

Definition at line 554 of file mod_ext_filter.c.

◆ merge_ef_dir_conf()

static void * merge_ef_dir_conf ( apr_pool_t p,
void *  basev,
void *  overridesv 
)
static

Definition at line 105 of file mod_ext_filter.c.

◆ parse_cmd()

static const char * parse_cmd ( apr_pool_t p,
const char **  args,
ef_filter_t filter 
)
static

Definition at line 154 of file mod_ext_filter.c.

◆ pass_data_to_filter()

static apr_status_t pass_data_to_filter ( ap_filter_t f,
const char data,
apr_size_t  len,
apr_bucket_brigade bb 
)
static

Definition at line 672 of file mod_ext_filter.c.

◆ register_hooks()

static void register_hooks ( apr_pool_t p)
static

Definition at line 357 of file mod_ext_filter.c.

◆ set_resource_limits()

static apr_status_t set_resource_limits ( request_rec r,
apr_procattr_t procattr 
)
static

Definition at line 362 of file mod_ext_filter.c.

Variable Documentation

◆ aplog_module_index

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

Definition at line 945 of file mod_ext_filter.c.

◆ cmds

const command_rec cmds[]
static
Initial value:
=
{
{ "ExtFilterOptions" , add_options , NULL , 64 , ITERATE, "valid options: LogStderr, NoLogStderr" },
{ "ExtFilterDefine" , define_filter , NULL , 128 , RAW_ARGS, "Define an external filter" },
{NULL}
}
@ RAW_ARGS
Definition http_config.h:50
@ ITERATE
Definition http_config.h:53
static const char * add_options(cmd_parms *cmd, void *in_dc, const char *arg)
static const char * define_filter(cmd_parms *cmd, void *dummy, const char *args)
return NULL
Definition mod_so.c:359

Definition at line 336 of file mod_ext_filter.c.

◆ main_server

const server_rec* main_server
static

Definition at line 76 of file mod_ext_filter.c.