libapreq2-2.08: libapreq2: include/apreq.h File Reference

Apache HTTP Server Request Library

- Main Page
- Modules
- Data Structures
- Files
- Related Pages
- Examples

- File List
- Globals

# include/apreq.h File Reference

Main header file...

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_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)

## Detailed Description

Main header file...

Define the generic APREQ_ macros and common data structures.

## Define Documentation

#define apreq_attr_to_type | ( | T,
|  | A,
|  | P |  | ) | ( (T*) ((char*)(P)-offsetof(T,A)) )

  | Parameters:
  | T | type
  | A | attribute
  | P | XXX

#define APREQ_CHARSET_BIT 0

| Charset Bit See also: APREQ_FLAGS_OFF APREQ_FLAGS_ON APREQ_FLAGS_GET APREQ_FLAGS_SET

#define APREQ_CHARSET_MASK 255

| Charset Mask See also: APREQ_FLAGS_OFF APREQ_FLAGS_ON APREQ_FLAGS_GET APREQ_FLAGS_SET

#define APREQ_COOKIE_SECURE_BIT 13

| Cookie's Secure Bit See also: APREQ_FLAGS_OFF APREQ_FLAGS_ON APREQ_FLAGS_GET APREQ_FLAGS_SET

#define APREQ_COOKIE_SECURE_MASK 1

| Cookie's Secure Mask See also: APREQ_FLAGS_OFF APREQ_FLAGS_ON APREQ_FLAGS_GET APREQ_FLAGS_SET

#define APREQ_COOKIE_VERSION_BIT 11

| Cookier Version Bit See also: APREQ_FLAGS_OFF APREQ_FLAGS_ON APREQ_FLAGS_GET APREQ_FLAGS_SET

#define APREQ_COOKIE_VERSION_MASK 3

| Cookie Version Mask See also: APREQ_FLAGS_OFF APREQ_FLAGS_ON APREQ_FLAGS_GET APREQ_FLAGS_SET

#define APREQ_DECLARE | ( | d |  | ) | APR_DECLARE(d)

| APREQ_DECLARE(rettype) apeq_func(args) Examples: /usr/home/pgollucci/dev/compile/freebsd-6.1-stable/3.4.4/apreq/429956/r428290/5.8.8-2.2.3-prefork/include/apreq.h.

#define APREQ_DECLARE_DATA

| extern APREQ_DECLARE_DATA type apr_variable; APREQ_DECLARE_DATA type apr_variable = value;

#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 See also: ap_set_brigade_read_limit

#define APREQ_DEFAULT_NELTS 8

| Number of elements in the initial apr_table See also: apr_table_make

#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. See also: ap_set_read_limit

#define APREQ_FLAGS_GET | ( | f,
|  | name |  | ) | (((f) >> name##_BIT) & name##_MASK)

| Get specified bit f in bitfiled name

#define APREQ_FLAGS_OFF | ( | f,
|  | name |  | ) | ((f) &= ~(name##_MASK << name##_BIT))

| Check to see if specified bit f is off in bitfiled name

#define APREQ_FLAGS_ON | ( | f,
|  | name |  | ) | ((f) |= (name##_MASK << name##_BIT))

| Check to see if specified bit f is on in bitfiled name

#define APREQ_FLAGS_SET | ( | f,
|  | name,
|  | value |  | ) |

| Value:
    ((f) = (((f) & ~(name##_MASK << name##_BIT))        \
                | ((name##_MASK & (value)) << name##_BIT)))
Set specified bit f in bitfiled name to value Note the below BIT/Mask defines are used sans the _BIT, _MASK because of the this define's ##_MASK, ##_BIT usage. Each come in a pair

#define APREQ_TAINTED_BIT 8

| Tainted Bit See also: APREQ_FLAGS_OFF APREQ_FLAGS_ON APREQ_FLAGS_GET APREQ_FLAGS_SET

#define APREQ_TAINTED_MASK 1

| Tainted Mask See also: APREQ_FLAGS_OFF APREQ_FLAGS_ON APREQ_FLAGS_GET APREQ_FLAGS_SET

## Enumeration Type Documentation

enum apreq_charset_t

| Character encodings.

enum apreq_expires_t

  | Expiration date format Enumerator:
  APREQ_EXPIRES_HTTP | Use date formatting consistent with RFC 2616
  APREQ_EXPIRES_NSCOOKIE | Use format consistent with Netscape's Cookie Spec

enum apreq_join_t

  | Join type Enumerator:
  APREQ_JOIN_AS_IS | Join the strings without modification
  APREQ_JOIN_ENCODE | Url-encode the strings before joining them
  APREQ_JOIN_DECODE | Url-decode the strings before joining them
  APREQ_JOIN_QUOTE | Quote the strings, backslashing existing quote marks.

enum apreq_match_t

  | Match type Enumerator:
  APREQ_MATCH_FULL | Full match only.
  APREQ_MATCH_PARTIAL | Partial matches are ok.

## Function Documentation

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. Parameters:
  | pool | a base pool persisting while libapreq2 is used
Remarks: after you detroy the pool, you have to call this function again with a new pool if you still plan to use libapreq2 Examples: /usr/home/pgollucci/dev/compile/freebsd-6.1-stable/3.4.4/apreq/429956/r428290/5.8.8-2.2.3-prefork/include/apreq.h.

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. Parameters:
  | pool | the same pool that was used in apreq_pre_initialize().
Examples: /usr/home/pgollucci/dev/compile/freebsd-6.1-stable/3.4.4/apreq/429956/r428290/5.8.8-2.2.3-prefork/include/apreq.h.

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. Parameters:
  | pool | a base pool persisting while libapreq2 is used
Remarks: after you detroyed the pool, you have to call this function again with a new pool if you still plan to use libapreq2 Examples: /usr/home/pgollucci/dev/compile/freebsd-6.1-stable/3.4.4/apreq/429956/r428290/5.8.8-2.2.3-prefork/include/apreq.h.

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. Parameters:
  | v | value to add
  | t | add v to this table
Returns: void @ see apr_table_t See also: apr_value_t Examples: /usr/home/pgollucci/dev/compile/freebsd-6.1-stable/3.4.4/apreq/429956/r428290/5.8.8-2.2.3-prefork/include/apreq.h.