Main Page | Modules | Namespace List | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

Bucket Brigades


Data Structures

struct  apr_bucket_type_t
struct  apr_bucket
struct  apr_bucket_brigade
struct  apr_bucket_refcount
struct  apr_bucket_heap
struct  apr_bucket_pool
struct  apr_bucket_file
union  apr_bucket_structs

Defines

#define APR_BUCKET_BUFF_SIZE   8000
#define APR_BRIGADE_CHECK_CONSISTENCY(b)
#define APR_BUCKET_CHECK_CONSISTENCY(e)
#define APR_BRIGADE_SENTINEL(b)   APR_RING_SENTINEL(&(b)->list, apr_bucket, link)
#define APR_BRIGADE_EMPTY(b)   APR_RING_EMPTY(&(b)->list, apr_bucket, link)
#define APR_BRIGADE_FIRST(b)   APR_RING_FIRST(&(b)->list)
#define APR_BRIGADE_LAST(b)   APR_RING_LAST(&(b)->list)
#define APR_BRIGADE_FOREACH(e, b)   APR_RING_FOREACH((e), &(b)->list, apr_bucket, link)
#define APR_BRIGADE_INSERT_HEAD(b, e)
#define APR_BRIGADE_INSERT_TAIL(b, e)
#define APR_BRIGADE_CONCAT(a, b)
#define APR_BRIGADE_PREPEND(a, b)
#define APR_BUCKET_INSERT_BEFORE(a, b)
#define APR_BUCKET_INSERT_AFTER(a, b)
#define APR_BUCKET_NEXT(e)   APR_RING_NEXT((e), link)
#define APR_BUCKET_PREV(e)   APR_RING_PREV((e), link)
#define APR_BUCKET_REMOVE(e)   APR_RING_REMOVE((e), link)
#define APR_BUCKET_INIT(e)   APR_RING_ELEM_INIT((e), link)
#define APR_BUCKET_IS_METADATA(e)   ((e)->type->is_metadata)
#define APR_BUCKET_IS_FLUSH(e)   ((e)->type == &apr_bucket_type_flush)
#define APR_BUCKET_IS_EOS(e)   ((e)->type == &apr_bucket_type_eos)
#define APR_BUCKET_IS_FILE(e)   ((e)->type == &apr_bucket_type_file)
#define APR_BUCKET_IS_PIPE(e)   ((e)->type == &apr_bucket_type_pipe)
#define APR_BUCKET_IS_SOCKET(e)   ((e)->type == &apr_bucket_type_socket)
#define APR_BUCKET_IS_HEAP(e)   ((e)->type == &apr_bucket_type_heap)
#define APR_BUCKET_IS_TRANSIENT(e)   ((e)->type == &apr_bucket_type_transient)
#define APR_BUCKET_IS_IMMORTAL(e)   ((e)->type == &apr_bucket_type_immortal)
#define APR_BUCKET_IS_POOL(e)   ((e)->type == &apr_bucket_type_pool)
#define APR_BUCKET_ALLOC_SIZE   APR_ALIGN_DEFAULT(2*sizeof(apr_bucket_structs))
#define apr_bucket_destroy(e)
#define apr_bucket_delete(e)
#define apr_bucket_read(e, str, len, block)   (e)->type->read(e, str, len, block)
#define apr_bucket_setaside(e, p)   (e)->type->setaside(e,p)
#define apr_bucket_split(e, point)   (e)->type->split(e, point)
#define apr_bucket_copy(e, c)   (e)->type->copy(e, c)
#define str   1

Typedefs

typedef apr_bucket_brigade apr_bucket_brigade
typedef apr_bucket apr_bucket
typedef apr_bucket_alloc_t apr_bucket_alloc_t
typedef apr_bucket_type_t apr_bucket_type_t
typedef apr_status_t(* apr_brigade_flush )(apr_bucket_brigade *bb, void *ctx)
typedef apr_bucket_refcount apr_bucket_refcount
typedef apr_bucket_heap apr_bucket_heap
typedef apr_bucket_pool apr_bucket_pool
typedef apr_bucket_file apr_bucket_file
typedef apr_bucket_structs apr_bucket_structs

Enumerations

enum  apr_read_type_e { APR_BLOCK_READ, APR_NONBLOCK_READ }

Functions

 APU_DECLARE (apr_bucket_brigade *) apr_brigade_create(apr_pool_t *p
 APU_DECLARE (apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b)
 APU_DECLARE_NONSTD (apr_status_t) apr_brigade_putstrs(apr_bucket_brigade *b
apr_brigade_flush void apr_brigade_flush
void const char 
__attribute__ ((format(printf, 4, 5)))
 APU_DECLARE_NONSTD (apr_bucket_alloc_t *) apr_bucket_alloc_create(apr_pool_t *p)
 APU_DECLARE_NONSTD (void) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list)
 APU_DECLARE_NONSTD (void *) apr_bucket_alloc(apr_size_t size
 APU_DECLARE (apr_bucket *) apr_bucket_shared_make(apr_bucket *b
 APU_DECLARE (int) apr_bucket_shared_destroy(void *data)

Variables

apr_bucket_alloc_tlist
apr_buckete
apr_off_t point
apr_off_t apr_bucket ** after_point
int read_all
int apr_off_t * length
char * c
char apr_size_t * len
char apr_size_t apr_pool_tpool
apr_bucket_brigadebbIn
apr_bucket_brigade apr_read_type_e block
apr_bucket_brigade apr_read_type_e
apr_off_t 
maxbytes
iovec * vec
iovec intnvec
apr_brigade_flush flush
apr_brigade_flush void * ctx
apr_brigade_flush void va_list va
apr_brigade_flush void const
char * 
str
apr_brigade_flush void const
char apr_size_t 
nbyte
apr_brigade_flush void apr_brigade_flush
void const char * 
fmt
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_flush
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_eos
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_file
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_heap
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_pool
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_pipe
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_immortal
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_transient
APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_socket
apr_bucket ** b
void * data
void apr_off_t start
const char * buf
apr_size_t void(* free_func )(void *data)
apr_socket_tthissock
apr_file_tthispipe
apr_off_t offset
apr_off_t apr_size_t apr_pool_tp
apr_file_tfd
int enabled
conn_recc
void * ctx
const char apr_pool_t apr_bucket_alloc_tlist
apr_off_t length
int nbyte

Define Documentation

#define APR_BRIGADE_CHECK_CONSISTENCY b   ) 
 

checks the ring pointers in a bucket brigade for consistency. an abort() will be triggered if any inconsistencies are found. note: this is a no-op unless APR_BUCKET_DEBUG is defined.

Parameters:
b The brigade

Definition at line 304 of file apr_buckets.h.

Referenced by brigade_move().

#define APR_BRIGADE_CONCAT a,
b   ) 
 

Value:

do {                                    \
        APR_RING_CONCAT(&(a)->list, &(b)->list, apr_bucket, link);      \
        APR_BRIGADE_CHECK_CONSISTENCY((a));                             \
    } while (0)
Concatenate brigade b onto the end of brigade a, leaving brigade b empty
Parameters:
a The first brigade
b The second brigade

Definition at line 424 of file apr_buckets.h.

Referenced by ap_proxy_send_dir_filter(), APR_OPTIONAL_FN_TYPE(), core_input_filter(), deflate_in_filter(), send_parsed_content(), and xlate_in_filter().

#define APR_BRIGADE_EMPTY b   )     APR_RING_EMPTY(&(b)->list, apr_bucket, link)
 

Determine if the bucket brigade is empty

Parameters:
b The brigade to check
Returns:
true or false

Definition at line 338 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), AP_DECLARE(), ap_proxy_ftp_handler(), ap_proxy_http_process_response(), ap_proxy_send_dir_filter(), APR_OPTIONAL_FN_TYPE(), APU_DECLARE(), bio_filter_in_read(), brigade_consume(), CaseFilterInFilter(), core_input_filter(), deflate_in_filter(), deflate_out_filter(), process_echo_connection(), PROXY_DECLARE(), send_parsed_content(), ssl_io_filter_output(), xlate_brigade(), and xlate_in_filter().

#define APR_BRIGADE_FIRST b   )     APR_RING_FIRST(&(b)->list)
 

Return the first bucket in a brigade

Parameters:
b The brigade to query
Returns:
The first bucket in the brigade

Definition at line 345 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), AP_DECLARE(), ap_proxy_http_request(), ap_proxy_send_dir_filter(), APR_OPTIONAL_FN_TYPE(), APU_DECLARE(), brigade_consume(), cache_save_filter(), CaseFilterInFilter(), core_input_filter(), dav_method_put(), deflate_out_filter(), dumpio_input_filter(), dumpio_output_filter(), getsfunc_BRIGADE(), pass_request(), PROXY_DECLARE(), send_parsed_content(), ssl_io_filter_output(), store_body(), xlate_brigade(), and xlate_out_filter().

#define APR_BRIGADE_FOREACH e,
b   )     APR_RING_FOREACH((e), &(b)->list, apr_bucket, link)
 

Iterate through a bucket brigade

Parameters:
e The current bucket
b The brigade to iterate over
Remarks:
This is the same as either:
	e = APR_BRIGADE_FIRST(b);
 	while (e != APR_BRIGADE_SENTINEL(b)) {
	    ...
 	    e = APR_BUCKET_NEXT(e);
 	}
  OR
 	for (e = APR_BRIGADE_FIRST(b);
           e != APR_BRIGADE_SENTINEL(b);
           e = APR_BUCKET_NEXT(e)) {
	    ...
 	}
 
Warning:
Be aware that you cannot change the value of e within the foreach loop, nor can you destroy the bucket it points to. Modifying the prev and next pointers of the bucket is dangerous but can be done if you're careful. If you change e's value or destroy the bucket it points to, then APR_BRIGADE_FOREACH will have no way to find out what bucket to use for its next iteration. The reason for this can be seen by looking closely at the equivalent loops given in the tip above. So, for example, if you are writing a loop that empties out a brigade one bucket at a time, APR_BRIGADE_FOREACH just won't work for you. Do it by hand, like so:
      while (!APR_BRIGADE_EMPTY(b)) {
          e = APR_BRIGADE_FIRST(b);
          ...
          apr_bucket_delete(e);
      }
 
Deprecated:
This macro causes more headaches than it's worth. Use one of the alternatives documented here instead; the clarity gained in what's really going on is well worth the extra line or two of code. This macro will be removed at some point in the future.

Definition at line 394 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), AP_DECLARE(), APR_OPTIONAL_FN_TYPE(), bucketeer_out_filter(), CaseFilterOutFilter(), cgi_handler(), cgid_handler(), chunk_filter(), core_input_filter(), deflate_in_filter(), discard_script_output(), ef_output_filter(), and log_script().

#define APR_BRIGADE_INSERT_HEAD b,
e   ) 
 

Value:

do {                            \
        apr_bucket *ap__b = (e);                                        \
        APR_RING_INSERT_HEAD(&(b)->list, ap__b, apr_bucket, link);      \
        APR_BRIGADE_CHECK_CONSISTENCY((b));                             \
    } while (0)
Insert a list of buckets at the front of a brigade
Parameters:
b The brigade to add to
e The first bucket in a list of buckets to insert

Definition at line 402 of file apr_buckets.h.

Referenced by ap_http_filter(), APR_OPTIONAL_FN_TYPE(), bio_filter_out_flush(), check_pipeline_flush(), chunk_filter(), recall_body(), receive_from_other_child(), and xlate_in_filter().

#define APR_BRIGADE_INSERT_TAIL b,
e   ) 
 

Value:

do {                            \
        apr_bucket *ap__b = (e);                                        \
        APR_RING_INSERT_TAIL(&(b)->list, ap__b, apr_bucket, link);      \
        APR_BRIGADE_CHECK_CONSISTENCY((b));                             \
    } while (0)
Insert a list of buckets at the end of a brigade
Parameters:
b The brigade to add to
e The first bucket in a list of buckets to insert

Definition at line 413 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), ap_http_filter(), ap_proxy_ftp_handler(), ap_proxy_http_process_response(), ap_proxy_http_request(), ap_proxy_send_dir_filter(), APR_HOOK_STRUCT(), asis_handler(), bio_filter_out_flush(), bio_filter_out_write(), bucketeer_out_filter(), buffer_output(), cache_save_filter(), CaseFilterInFilter(), CaseFilterOutFilter(), cgi_handler(), cgid_handler(), chunk_filter(), core_input_filter(), dav_finish_multistatus(), default_handler(), deflate_in_filter(), deflate_out_filter(), drain_available_output(), ef_output_filter(), end_output_stream(), handle_map_file(), include_cmd(), isapi_handler(), mmap_handler(), process_echo_connection(), proxy_ftp_command(), recall_body(), send_downstream(), send_eos(), send_parsed_content(), sendfile_handler(), ServerSupportFunction(), ssl_io_filter_error(), ssl_io_filter_input(), ssl_io_filter_Upgrade(), and WriteClient().

#define APR_BRIGADE_LAST b   )     APR_RING_LAST(&(b)->list)
 

Return the last bucket in a brigade

Parameters:
b The brigade to query
Returns:
The last bucket in the brigade

Definition at line 351 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), AP_DECLARE(), ap_proxy_ftp_handler(), ap_proxy_http_process_response(), ap_proxy_http_request(), APR_OPTIONAL_FN_TYPE(), logio_out_filter(), and store_body().

#define APR_BRIGADE_PREPEND a,
b   ) 
 

Value:

do {                                    \
        APR_RING_PREPEND(&(a)->list, &(b)->list, apr_bucket, link);     \
        APR_BRIGADE_CHECK_CONSISTENCY((a));                             \
    } while (0)
Prepend brigade b onto the beginning of brigade a, leaving brigade b empty
Parameters:
a The first brigade
b The second brigade

Definition at line 434 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), send_parsed_content(), and xlate_in_filter().

#define APR_BRIGADE_SENTINEL b   )     APR_RING_SENTINEL(&(b)->list, apr_bucket, link)
 

The magic pointer value that indicates the head of the brigade

Remarks:
This is used to find the beginning and end of the brigade, eg:
      while (e != APR_BRIGADE_SENTINEL(b)) {
          ...
          e = APR_BUCKET_NEXT(e);
      }
 
Parameters:
b The brigade
Returns:
The magic pointer value

Definition at line 331 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), APR_OPTIONAL_FN_TYPE(), brigade_move(), cache_save_filter(), dav_method_put(), dumpio_input_filter(), dumpio_output_filter(), pass_request(), send_parsed_content(), store_body(), xlate_brigade(), and xlate_out_filter().

#define APR_BUCKET_ALLOC_SIZE   APR_ALIGN_DEFAULT(2*sizeof(apr_bucket_structs))
 

The amount that apr_bucket_alloc() should allocate in the common case. Note: this is twice as big as apr_bucket_structs to allow breathing room for third-party bucket types.

Definition at line 692 of file apr_buckets.h.

#define APR_BUCKET_BUFF_SIZE   8000
 

default bucket buffer size - 8KB minus room for memory allocator headers

Definition at line 54 of file apr_buckets.h.

Referenced by brigade_flush(), file_bucket_read(), pipe_bucket_read(), and socket_bucket_read().

#define APR_BUCKET_CHECK_CONSISTENCY e   ) 
 

checks the brigade a bucket is in for ring consistency. an abort() will be triggered if any inconsistencies are found. note: this is a no-op unless APR_BUCKET_DEBUG is defined.

Parameters:
e The bucket

Definition at line 311 of file apr_buckets.h.

#define apr_bucket_copy e,
c   )     (e)->type->copy(e, c)
 

Copy a bucket.

Parameters:
e The bucket to copy
c Returns a pointer to the new bucket

Definition at line 1030 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), asis_handler(), bucketeer_out_filter(), core_input_filter(), default_handler(), and ServerSupportFunction().

#define apr_bucket_delete e   ) 
 

Value:

do {                                    \
        APR_BUCKET_REMOVE(e);                                           \
        apr_bucket_destroy(e);                                          \
    } while (0)
Delete a bucket by removing it from its brigade (if any) and then destroying it.
Remarks:
This mainly acts as an aid in avoiding code verbosity. It is the preferred exact equivalent to:
      APR_BUCKET_REMOVE(e);
      apr_bucket_destroy(e);
 
Parameters:
e The bucket to delete

Definition at line 996 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), ap_proxy_http_request(), APR_OPTIONAL_FN_TYPE(), APU_DECLARE(), brigade_consume(), CaseFilterInFilter(), core_input_filter(), deflate_out_filter(), send_parsed_content(), ssl_io_filter_output(), xlate_brigade(), and xlate_out_filter().

#define apr_bucket_destroy e   ) 
 

Value:

do {                                    \
        (e)->type->destroy((e)->data);                                  \
        (e)->free(e);                                                   \
    } while (0)
Free the resources used by a bucket. If multiple buckets refer to the same resource it is freed when the last one goes away.
See also:
apr_bucket_delete()
Parameters:
e The bucket to destroy

Definition at line 980 of file apr_buckets.h.

Referenced by ap_proxy_send_dir_filter(), getsfunc_BRIGADE(), and PROXY_DECLARE().

#define APR_BUCKET_INIT e   )     APR_RING_ELEM_INIT((e), link)
 

Initialize a new bucket's prev/next pointers

Parameters:
e The bucket to initialize

Definition at line 484 of file apr_buckets.h.

Referenced by AP_DECLARE().

#define APR_BUCKET_INSERT_AFTER a,
b   ) 
 

Value:

do {                            \
        apr_bucket *ap__a = (a), *ap__b = (b);                          \
        APR_RING_INSERT_AFTER(ap__a, ap__b, link);                      \
        APR_BUCKET_CHECK_CONSISTENCY(ap__a);                            \
    } while (0)
Insert a list of buckets after a specified bucket
Parameters:
a The bucket to insert after
b The buckets to insert

Definition at line 455 of file apr_buckets.h.

Referenced by APR_OPTIONAL_FN_TYPE(), file_bucket_read(), pipe_bucket_read(), and socket_bucket_read().

#define APR_BUCKET_INSERT_BEFORE a,
b   ) 
 

Value:

do {                            \
        apr_bucket *ap__a = (a), *ap__b = (b);                          \
        APR_RING_INSERT_BEFORE(ap__a, ap__b, link);                     \
        APR_BUCKET_CHECK_CONSISTENCY(ap__a);                            \
    } while (0)
Insert a list of buckets before a specified bucket
Parameters:
a The bucket to insert before
b The buckets to insert

Definition at line 444 of file apr_buckets.h.

Referenced by chunk_filter(), dumpio_output_filter(), handle_echo(), handle_elif(), handle_flastmod(), handle_fsize(), handle_if(), handle_printenv(), include_cgi(), logio_out_filter(), and send_parsed_content().

#define APR_BUCKET_IS_EOS e   )     ((e)->type == &apr_bucket_type_eos)
 

Determine if a bucket is an EOS bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 505 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), AP_DECLARE(), ap_proxy_ftp_handler(), ap_proxy_http_process_response(), ap_proxy_http_request(), ap_proxy_send_dir_filter(), APR_OPTIONAL_FN_TYPE(), brigade_consume(), bucketeer_out_filter(), cache_save_filter(), CaseFilterInFilter(), CaseFilterOutFilter(), cgi_handler(), cgid_handler(), chunk_filter(), dav_method_put(), deflate_in_filter(), deflate_out_filter(), discard_script_output(), dumpio_output_filter(), ef_output_filter(), getsfunc_BRIGADE(), log_script(), logio_out_filter(), PROXY_DECLARE(), send_parsed_content(), ssl_io_filter_output(), store_body(), xlate_brigade(), and xlate_out_filter().

#define APR_BUCKET_IS_FILE e   )     ((e)->type == &apr_bucket_type_file)
 

Determine if a bucket is a FILE bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 511 of file apr_buckets.h.

Referenced by APR_OPTIONAL_FN_TYPE(), and store_body().

#define APR_BUCKET_IS_FLUSH e   )     ((e)->type == &apr_bucket_type_flush)
 

Determine if a bucket is a FLUSH bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 499 of file apr_buckets.h.

Referenced by APR_OPTIONAL_FN_TYPE(), bucketeer_out_filter(), cache_save_filter(), cgi_handler(), cgid_handler(), chunk_filter(), deflate_in_filter(), deflate_out_filter(), send_parsed_content(), and ssl_io_filter_output().

#define APR_BUCKET_IS_HEAP e   )     ((e)->type == &apr_bucket_type_heap)
 

Determine if a bucket is a HEAP bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 529 of file apr_buckets.h.

#define APR_BUCKET_IS_IMMORTAL e   )     ((e)->type == &apr_bucket_type_immortal)
 

Determine if a bucket is a IMMORTAL bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 541 of file apr_buckets.h.

#define APR_BUCKET_IS_METADATA e   )     ((e)->type->is_metadata)
 

Determine if a bucket contains metadata. An empty bucket is safe to arbitrarily remove if and only if this is false.

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 492 of file apr_buckets.h.

Referenced by AP_DECLARE(), bucketeer_out_filter(), dav_method_put(), dumpit(), and send_parsed_content().

#define APR_BUCKET_IS_PIPE e   )     ((e)->type == &apr_bucket_type_pipe)
 

Determine if a bucket is a PIPE bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 517 of file apr_buckets.h.

#define APR_BUCKET_IS_POOL e   )     ((e)->type == &apr_bucket_type_pool)
 

Determine if a bucket is a POOL bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 555 of file apr_buckets.h.

#define APR_BUCKET_IS_SOCKET e   )     ((e)->type == &apr_bucket_type_socket)
 

Determine if a bucket is a SOCKET bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 523 of file apr_buckets.h.

Referenced by pass_request().

#define APR_BUCKET_IS_TRANSIENT e   )     ((e)->type == &apr_bucket_type_transient)
 

Determine if a bucket is a TRANSIENT bucket

Parameters:
e The bucket to inspect
Returns:
true or false

Definition at line 535 of file apr_buckets.h.

#define APR_BUCKET_NEXT e   )     APR_RING_NEXT((e), link)
 

Get the next bucket in the list

Parameters:
e The current bucket
Returns:
The next bucket

Definition at line 466 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), APR_OPTIONAL_FN_TYPE(), cache_save_filter(), chunk_filter(), dav_method_put(), dumpio_input_filter(), dumpio_output_filter(), getsfunc_BRIGADE(), pass_request(), send_parsed_content(), store_body(), and xlate_out_filter().

#define APR_BUCKET_PREV e   )     APR_RING_PREV((e), link)
 

Get the previous bucket in the list

Parameters:
e The current bucket
Returns:
The previous bucket

Definition at line 472 of file apr_buckets.h.

#define apr_bucket_read e,
str,
len,
block   )     (e)->type->read(e, str, len, block)
 

read the data from the bucket

Parameters:
e The bucket to read from
str The location to store the data in
len The amount of data read
block Whether the read function blocks

Definition at line 1008 of file apr_buckets.h.

Referenced by AP_CORE_DECLARE_NONSTD(), AP_DECLARE(), ap_proxy_send_dir_filter(), APR_OPTIONAL_FN_TYPE(), brigade_consume(), bucketeer_out_filter(), CaseFilterInFilter(), CaseFilterOutFilter(), cgi_handler(), cgid_handler(), chunk_filter(), core_input_filter(), dav_method_put(), deflate_in_filter(), deflate_out_filter(), discard_script_output(), dumpit(), ef_output_filter(), file_bucket_read(), getsfunc_BRIGADE(), log_script(), PROXY_DECLARE(), send_parsed_content(), ssl_io_filter_output(), store_body(), xlate_brigade(), and xlate_out_filter().

#define APR_BUCKET_REMOVE e   )     APR_RING_REMOVE((e), link)
 

Remove a bucket from its bucket brigade

Parameters:
e The bucket to remove

Definition at line 478 of file apr_buckets.h.

Referenced by ap_proxy_send_dir_filter(), APR_OPTIONAL_FN_TYPE(), bucketeer_out_filter(), CaseFilterInFilter(), deflate_in_filter(), deflate_out_filter(), getsfunc_BRIGADE(), PROXY_DECLARE(), and send_parsed_content().

#define apr_bucket_setaside e,
p   )     (e)->type->setaside(e,p)
 

Setaside data so that stack data is not destroyed on returning from the function

Parameters:
e The bucket to setaside
p The pool to setaside into

Definition at line 1016 of file apr_buckets.h.

#define apr_bucket_split e,
point   )     (e)->type->split(e, point)
 

Split one bucket in two.

Parameters:
e The bucket to split
point The offset to split the bucket at

Definition at line 1023 of file apr_buckets.h.

Referenced by ap_proxy_send_dir_filter(), getsfunc_BRIGADE(), send_parsed_content(), and xlate_brigade().

apr_brigade_flush void const char * str   1
 

Definition at line 497 of file ssl_expr_scan.c.

Referenced by ap_buffered_log_writer(), AP_CORE_DECLARE_NONSTD(), AP_DECLARE(), ap_default_log_writer(), ap_proxy_send_dir_filter(), APR_OPTIONAL_FN_TYPE(), brigade_consume(), build_model(), check_sockets(), cmd_rewritecond(), cmd_rewriterule(), core_input_filter(), CuStringNew(), CuSuiteListDetails(), CuSuiteListRunWithSummary(), CuSuiteListSummary(), feedback(), gen_unique_id(), genspaces(), hash_traverse(), magic_rsl_putchar(), main(), mod_auth_ldap_check_user_id(), no_options(), no_options_found(), optional_option(), optional_option_notgiven(), overlay_2unique(), overlay_empty(), overlay_same(), printerr(), process_tags(), proxy_handler(), required_option(), required_option_notgiven(), set_loglevel(), ssl_callback_LogTracingState(), store_body(), test_dso_sym(), test_dso_sym_library(), test_fileclose(), test_filename(), test_gets(), test_info_get(), test_mtime_set(),