Apache HTTP Server Request Library

Define the generic APREQ_ macros and common data structures. More...
#include "apr_tables.h"
#include <stddef.h>
Go to the source code of this file.
| Data Structures | |
| struct | apreq_value_t | 
| libapreq's pre-extensible string type  More... | |
| Defines | |
| #define | APREQ_DECLARE(d) APR_DECLARE(d) | 
| #define | APREQ_DECLARE_NONSTD(d) APR_DECLARE_NONSTD(d) | 
| #define | APREQ_DECLARE_DATA | 
| #define | APREQ_DEFAULT_READ_BLOCK_SIZE (64 * 1024) | 
| #define | APREQ_DEFAULT_READ_LIMIT (64 * 1024 * 1024) | 
| #define | APREQ_DEFAULT_BRIGADE_LIMIT (256 * 1024) | 
| #define | APREQ_DEFAULT_NELTS 8 | 
| #define | APREQ_FLAGS_OFF(f, name) ((f) &= ~(name##_MASK << name##_BIT)) | 
| #define | APREQ_FLAGS_ON(f, name) ((f) |= (name##_MASK << name##_BIT)) | 
| #define | APREQ_FLAGS_GET(f, name) (((f) >> name##_BIT) & name##_MASK) | 
| #define | APREQ_FLAGS_SET(f, name, value) | 
| #define | APREQ_CHARSET_BIT 0 | 
| #define | APREQ_CHARSET_MASK 255 | 
| #define | APREQ_TAINTED_BIT 8 | 
| #define | APREQ_TAINTED_MASK 1 | 
| #define | APREQ_COOKIE_VERSION_BIT 11 | 
| #define | APREQ_COOKIE_VERSION_MASK 3 | 
| #define | APREQ_COOKIE_SECURE_BIT 13 | 
| #define | APREQ_COOKIE_SECURE_MASK 1 | 
| #define | APREQ_COOKIE_HTTPONLY_BIT 14 | 
| #define | APREQ_COOKIE_HTTPONLY_MASK 1 | 
| #define | apreq_attr_to_type(T, A, P) ( (T*) ((char*)(P)-offsetof(T,A)) ) | 
| Enumerations | |
| enum | apreq_charset_t { APREQ_CHARSET_ASCII = 0, APREQ_CHARSET_LATIN1 = 1, APREQ_CHARSET_CP1252 = 2, APREQ_CHARSET_UTF8 = 8 } | 
| enum | apreq_join_t { APREQ_JOIN_AS_IS, APREQ_JOIN_ENCODE, APREQ_JOIN_DECODE, APREQ_JOIN_QUOTE } | 
| enum | apreq_match_t { APREQ_MATCH_FULL, APREQ_MATCH_PARTIAL } | 
| enum | apreq_expires_t { APREQ_EXPIRES_HTTP, APREQ_EXPIRES_NSCOOKIE } | 
| Functions | |
| static APR_INLINE void | apreq_value_table_add (const apreq_value_t *v, apr_table_t *t) | 
| apr_status_t | apreq_initialize (apr_pool_t *pool) | 
| apr_status_t | apreq_pre_initialize (apr_pool_t *pool) | 
| apr_status_t | apreq_post_initialize (apr_pool_t *pool) | 
Define the generic APREQ_ macros and common data structures.
| #define apreq_attr_to_type | ( | T, | |||
| A, | |||||
| P | ) | ( (T*) ((char*)(P)-offsetof(T,A)) ) | 
| T | type | |
| A | attribute | |
| P | XXX | 
| #define APREQ_CHARSET_BIT 0 | 
Charset Bit
| #define APREQ_CHARSET_MASK 255 | 
Charset Mask
| #define APREQ_COOKIE_HTTPONLY_BIT 14 | 
Cookie's HttpOnly Bit
| #define APREQ_COOKIE_HTTPONLY_MASK 1 | 
Cookie's HttpOnly Mask
| #define APREQ_COOKIE_SECURE_BIT 13 | 
Cookie's Secure Bit
| #define APREQ_COOKIE_SECURE_MASK 1 | 
Cookie's Secure Mask
| #define APREQ_COOKIE_VERSION_BIT 11 | 
Cookier Version Bit
| #define APREQ_COOKIE_VERSION_MASK 3 | 
Cookie Version Mask
| #define APREQ_DECLARE | ( | d | ) | APR_DECLARE(d) | 
The public APREQ functions are declared with APREQ_DECLARE(), so they may use the most appropriate calling convention. Public APR functions with variable arguments must use APR_DECLARE_NONSTD().
| #define APREQ_DECLARE_DATA | 
The public APREQ variables are declared with APREQ_DECLARE_DATA. This assures the appropriate indirection is invoked at compile time.
| #define APREQ_DECLARE_NONSTD | ( | d | ) | APR_DECLARE_NONSTD(d) | 
APEQ_DECLARE_NONSTD(rettype) apr_func(args, ...);
| #define APREQ_DEFAULT_BRIGADE_LIMIT (256 * 1024) | 
Maximum number of bytes mod_apreq2 will let accumulate within the heap-buckets in a brigade. Excess data will be spooled to an appended file bucket
| #define APREQ_DEFAULT_NELTS 8 | 
Number of elements in the initial apr_table
| #define APREQ_DEFAULT_READ_BLOCK_SIZE (64 * 1024) | 
Read chucks of data in 64k blocks from the request
| #define APREQ_DEFAULT_READ_LIMIT (64 * 1024 * 1024) | 
Maximum number of bytes mod_apreq2 will send off to libapreq2 for parsing. mod_apreq2 will log this event and subsequently remove itself from the filter chain.
| #define APREQ_FLAGS_GET | ( | f, | |||
| name | ) | (((f) >> name##_BIT) & name##_MASK) | 
Get specified bit f in bitfield name
| #define APREQ_FLAGS_OFF | ( | f, | |||
| name | ) | ((f) &= ~(name##_MASK << name##_BIT)) | 
Check to see if specified bit f is off in bitfield name
| #define APREQ_FLAGS_ON | ( | f, | |||
| name | ) | ((f) |= (name##_MASK << name##_BIT)) | 
Check to see if specified bit f is on in bitfield name
| #define APREQ_FLAGS_SET | ( | f, | |||
| name, | |||||
| value | ) | 
Value:
((f) = (((f) & ~(name##_MASK << name##_BIT))        \
            | ((name##_MASK & (value)) << name##_BIT)))
| #define APREQ_TAINTED_BIT 8 | 
Tainted Bit
| #define APREQ_TAINTED_MASK 1 | 
Tainted Mask
| enum apreq_charset_t | 
Character encodings.
| enum apreq_expires_t | 
| enum apreq_join_t | 
| enum apreq_match_t | 
| apr_status_t apreq_initialize | ( | apr_pool_t * | pool | ) | 
Initialize libapreq2. Applications (except apache modules using mod_apreq) should call this exactly once before they use any libapreq2 modules. If you want to modify the list of default parsers with apreq_register_parser(), please use apreq_pre_initialize() and apreq_post_initialize() instead.
| pool | a base pool persisting while libapreq2 is used | 
| apr_status_t apreq_post_initialize | ( | apr_pool_t * | pool | ) | 
Post-initialize libapreq2. Applications (except apache modules using mod_apreq2) should this exactly once before they use any libapreq2 modules for parsing.
| pool | the same pool that was used in apreq_pre_initialize(). | 
| apr_status_t apreq_pre_initialize | ( | apr_pool_t * | pool | ) | 
Pre-initialize libapreq2. Applications (except apache modules using mod_apreq2) should call this exactly once before they register custom parsers with libapreq2. mod_apreq2 does this automatically during the post-config phase, so modules that need call apreq_register_parser should create a post-config hook using APR_HOOK_MIDDLE.
| pool | a base pool persisting while libapreq2 is used | 
| static APR_INLINE void apreq_value_table_add | ( | const apreq_value_t * | v, | |
| apr_table_t * | t | |||
| ) |  [static] | 
Adds the specified apreq_value_t to the apr_table_t.
| v | value to add | |
| t | add v to this table |