99 "Invalid Content-Length '%s'",
lenp);
111 " is larger than the configured limit"
131 if (
f->r->kept_body) {
133 f->r->kept_body =
NULL;
137 " is larger than the configured limit"
145 if (
f->r->kept_body) {
147 f->r->kept_body =
NULL;
222 if (
ctx->remaining <= 0) {
234 "apr_brigade_partition() failed on kept_body at %" APR_OFF_T_FMT,
ctx->offset);
359 return "KeptBodySize must be a valid size in bytes, or zero.";
368 "Maximum size of request bodies kept aside for use by filters"),
Symbol export macros and hook functions.
const char apr_size_t len
APR-UTIL Buckets/Bucket Brigades.
APR general purpose library routines.
#define AP_INIT_TAKE1(directive, func, mconfig, where, help)
#define ap_get_module_config(v, m)
#define AP_DECLARE_MODULE(foo)
void ap_remove_input_filter(ap_filter_t *f)
apr_status_t ap_pass_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket)
ap_filter_t * ap_add_input_filter_handle(ap_filter_rec_t *f, void *ctx, request_rec *r, conn_rec *c)
apr_status_t ap_filter_rec_t * ap_register_input_filter(const char *name, ap_in_filter_func filter_func, ap_init_filter_func filter_init, ap_filter_type ftype)
apr_status_t ap_get_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
apr_bucket * ap_bucket_error_create(int error, const char *buf, apr_pool_t *p, apr_bucket_alloc_t *list)
void ap_hook_insert_filter(ap_HOOK_insert_filter_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define APR_BRIGADE_INSERT_TAIL(b, e)
#define APR_BUCKET_NEXT(e)
#define APR_BRIGADE_SENTINEL(b)
apr_brigade_flush void * ctx
#define apr_bucket_copy(e, c)
#define APR_BRIGADE_FIRST(b)
#define apr_bucket_read(e, str, len, block)
apr_dbd_transaction_t int mode
#define APR_REGISTER_OPTIONAL_FN(name)
#define HTTP_REQUEST_ENTITY_TOO_LARGE
#define STANDARD20_MODULE_STUFF
int ap_parse_strict_length(apr_off_t *len, const char *str)
#define apr_pcalloc(p, size)
static ap_filter_rec_t * keep_body_input_filter_handle
static apr_status_t bail_out_on_error(apr_bucket_brigade *bb, ap_filter_t *f, int http_error)
static apr_status_t keep_body_filter(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
struct kept_body_filter_ctx kept_body_ctx_t
static int request_is_filter_present(request_rec *r, ap_filter_rec_t *fn)
static apr_status_t kept_body_filter(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
static void * create_request_dir_config(apr_pool_t *p, char *dummy)
static const char * set_kept_body_size(cmd_parms *cmd, void *dconf, const char *arg)
static void register_hooks(apr_pool_t *p)
static void ap_request_insert_filter(request_rec *r)
struct keep_body_filter_ctx keep_body_ctx_t
static void * merge_request_dir_config(apr_pool_t *p, void *basev, void *addv)
static ap_filter_rec_t * kept_body_input_filter_handle
static void ap_request_remove_filter(request_rec *r)
static const command_rec request_cmds[]
static int kept_body_filter_init(ap_filter_t *f)
mod_request private header file
This structure is used for recording information about the registered filters. It associates a name w...
The representation of a filter chain.
A structure that represents the current request.
apr_bucket_brigade * kept_body
struct ap_filter_t * input_filters
struct ap_conf_vector_t * per_dir_config
ap_input_mode_t
input filtering modes