HTTP Daemon Routine
[Core routines]

Collaboration diagram for HTTP Daemon Routine:

Data Structures

struct  ap_version_t
 The numeric version information is broken out into fields within this structure. More...
struct  ap_method_list_t
 Structure for handling HTTP methods. More...
struct  htaccess_result
 This represents the result of calling htaccess; these are cached for each request. More...
struct  process_rec
 A structure that represents one process. More...
struct  request_rec
 A structure that represents the current request. More...
struct  conn_rec
 Structure to store things which are per connection. More...
struct  conn_slave_rec
struct  conn_state_t
 A structure to contain connection state information. More...
struct  server_addr_rec
 A structure to be used for Per-vhost config. More...
struct  ap_logconf
struct  server_rec
 A structure to store information for each virtual server. More...
struct  ap_sload_t
 A structure to hold server load params. More...
struct  ap_loadavg_t
 A structure to hold various server loadavg. More...
struct  ap_form_pair_t

Modules

 HTTPD specific values of apr_status_t
 HTTP Status Codes
 List of Methods recognized by the server
 

Methods recognized (but not necessarily handled) by the server.


 Module Magic mime types
 Possible values for request_rec.read_body
 Possible values for request_rec.used_path_info
 Proxy request types
 Flags which indicate places where the server should stop for debugging.

Defines

#define DOCUMENT_LOCATION   HTTPD_ROOT "/htdocs"
#define DYNAMIC_MODULE_LIMIT   256
#define DEFAULT_ADMIN   "[no address given]"
#define DEFAULT_ERRORLOG   "logs/error_log"
#define DEFAULT_ACCESS_FNAME   ".htaccess"
#define DEFAULT_PATH   "/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin"
#define SUEXEC_BIN   HTTPD_ROOT "/bin/suexec"
#define DEFAULT_TIMEOUT   60
#define DEFAULT_KEEPALIVE_TIMEOUT   5
#define DEFAULT_KEEPALIVE   100
#define DEFAULT_LIMIT_REQUEST_LINE   8190
#define DEFAULT_LIMIT_REQUEST_FIELDSIZE   8190
#define DEFAULT_LIMIT_REQUEST_FIELDS   100
#define DEFAULT_ADD_DEFAULT_CHARSET_NAME   "iso-8859-1"
#define AP_SERVER_PROTOCOL   "HTTP/1.1"
#define AP_DEFAULT_INDEX   "index.html"
#define DOCTYPE_HTML_2_0
#define DOCTYPE_HTML_3_2
#define DOCTYPE_HTML_4_0S
#define DOCTYPE_HTML_4_0T
#define DOCTYPE_HTML_4_0F
#define DOCTYPE_XHTML_1_0S
#define DOCTYPE_XHTML_1_0T
#define DOCTYPE_XHTML_1_0F
#define HTTP_VERSION(major, minor)   (1000*(major)+(minor))
#define HTTP_VERSION_MAJOR(number)   ((number)/1000)
#define HTTP_VERSION_MINOR(number)   ((number)%1000)
#define DEFAULT_HTTP_PORT   80
#define DEFAULT_HTTPS_PORT   443
#define ap_is_default_port(port, r)   ((port) == ap_default_port(r))
#define ap_default_port(r)   ap_run_default_port(r)
#define ap_http_scheme(r)   ap_run_http_scheme(r)
#define MAX_STRING_LEN   HUGE_STRING_LEN
#define HUGE_STRING_LEN   8192
#define AP_IOBUFSIZE   8192
#define AP_MAX_REG_MATCH   10
#define AP_MAX_SENDFILE   16777216
#define APEXIT_OK   0x0
#define APEXIT_INIT   0x2
#define APEXIT_CHILDINIT   0x3
#define APEXIT_CHILDSICK   0x7
#define APEXIT_CHILDFATAL   0xf
#define AP_DECLARE_DATA
#define AP_MODULE_DECLARE_DATA
#define OK   0
#define DECLINED   -1
#define DONE   -2
#define SUSPENDED   -3
#define AP_NOBODY_WROTE   -100
#define AP_NOBODY_READ   -101
#define AP_FILTER_ERROR   -102
#define LF   10
#define CR   13
#define CRLF   "\015\012"
#define CRLF_ASCII   "\015\012"
#define DEFAULT_VHOST_ADDR   0xfffffffful
#define ap_escape_uri(ppool, path)   ap_os_escape_path(ppool,path,1)
#define ap_escape_html(p, s)   ap_escape_html2(p,s,0)
#define ap_assert(exp)   ((exp) ? (void)0 : ap_log_assert(#exp,__FILE__,__LINE__))
#define AP_DEBUG_ASSERT(exp)   ((void)0)
#define ap_strchr(s, c)   strchr(s, c)
#define ap_strchr_c(s, c)   strchr(s, c)
#define ap_strrchr(s, c)   strrchr(s, c)
#define ap_strrchr_c(s, c)   strrchr(s, c)
#define ap_strstr(s, c)   strstr(s, c)
#define ap_strstr_c(s, c)   strstr(s, c)
#define AP_NORESTART   APR_OS_START_USEERR + 1

Typedefs

typedef struct ap_method_list_t ap_method_list_t
typedef struct process_rec process_rec
typedef struct server_rec server_rec
typedef struct conn_rec conn_rec
typedef struct conn_slave_rec conn_slave_rec
typedef struct request_rec request_rec
typedef struct conn_state_t conn_state_t
typedef struct server_addr_rec server_addr_rec
typedef struct ap_sload_t ap_sload_t
typedef struct ap_loadavg_t ap_loadavg_t

Enumerations

enum  ap_conn_keepalive_e { AP_CONN_UNKNOWN, AP_CONN_CLOSE, AP_CONN_KEEPALIVE }
 

Enumeration of connection keepalive options.

More...
enum  conn_state_e {
  CONN_STATE_CHECK_REQUEST_LINE_READABLE, CONN_STATE_READ_REQUEST_LINE, CONN_STATE_HANDLER, CONN_STATE_WRITE_COMPLETION,
  CONN_STATE_SUSPENDED, CONN_STATE_LINGER, CONN_STATE_LINGER_NORMAL, CONN_STATE_LINGER_SHORT
}
enum  conn_sense_e { CONN_SENSE_DEFAULT, CONN_SENSE_WANT_READ, CONN_SENSE_WANT_WRITE }

Functions

void ap_get_server_revision (ap_version_t *version)
const char * ap_get_server_banner (void)
const char * ap_get_server_description (void)
void ap_add_version_component (apr_pool_t *pconf, const char *component)
const char * ap_get_server_built (void)
const char * ap_context_document_root (request_rec *r)
const char * ap_context_prefix (request_rec *r)
void ap_set_context_info (request_rec *r, const char *prefix, const char *document_root)
void ap_set_document_root (request_rec *r, const char *document_root)
char * ap_field_noparam (apr_pool_t *p, const char *intype)
char * ap_ht_time (apr_pool_t *p, apr_time_t t, const char *fmt, int gmt)
char * ap_getword (apr_pool_t *p, const char **line, char stop)
char * ap_getword_nc (apr_pool_t *p, char **line, char stop)
char * ap_getword_white (apr_pool_t *p, const char **line)
char * ap_getword_white_nc (apr_pool_t *p, char **line)
char * ap_getword_nulls (apr_pool_t *p, const char **line, char stop)
char * ap_getword_nulls_nc (apr_pool_t *p, char **line, char stop)
char * ap_getword_conf (apr_pool_t *p, const char **line)
char * ap_getword_conf_nc (apr_pool_t *p, char **line)
const char * ap_resolve_env (apr_pool_t *p, const char *word)
const char * ap_size_list_item (const char **field, int *len)
char * ap_get_list_item (apr_pool_t *p, const char **field)
int ap_find_list_item (apr_pool_t *p, const char *line, const char *tok)
int ap_find_etag_weak (apr_pool_t *p, const char *line, const char *tok)
int ap_find_etag_strong (apr_pool_t *p, const char *line, const char *tok)
const char * ap_parse_token_list_strict (apr_pool_t *p, const char *tok, apr_array_header_t **tokens, int skip_invalid)
char * ap_get_token (apr_pool_t *p, const char **accept_line, int accept_white)
int ap_find_token (apr_pool_t *p, const char *line, const char *tok)
int ap_find_last_token (apr_pool_t *p, const char *line, const char *tok)
int ap_is_url (const char *u)
int ap_unescape_all (char *url)
int ap_unescape_url (char *url)
int ap_unescape_url_keep2f (char *url, int decode_slashes)
int ap_unescape_urlencoded (char *query)
void ap_no2slash (char *name) AP_FN_ATTR_NONNULL_ALL
void ap_getparents (char *name) AP_FN_ATTR_NONNULL_ALL
char * ap_escape_path_segment (apr_pool_t *p, const char *s) AP_FN_ATTR_NONNULL_ALL
char * ap_escape_path_segment_buffer (char *c, const char *s) AP_FN_ATTR_NONNULL_ALL
char * ap_os_escape_path (apr_pool_t *p, const char *path, int partial) AP_FN_ATTR_NONNULL_ALL
char * ap_escape_urlencoded (apr_pool_t *p, const char *s) AP_FN_ATTR_NONNULL_ALL
char * ap_escape_urlencoded_buffer (char *c, const char *s) AP_FN_ATTR_NONNULL_ALL
char * ap_escape_html2 (apr_pool_t *p, const char *s, int toasc) AP_FN_ATTR_NONNULL_ALL
char * ap_escape_logitem (apr_pool_t *p, const char *str) AP_FN_ATTR_NONNULL((1))
apr_size_t ap_escape_errorlog_item (char *dest, const char *source, apr_size_t buflen) AP_FN_ATTR_NONNULL((1))
char * ap_construct_server (apr_pool_t *p, const char *hostname, apr_port_t port, const request_rec *r) AP_FN_ATTR_NONNULL((1
char *char * ap_escape_shell_cmd (apr_pool_t *p, const char *s) AP_FN_ATTR_NONNULL_ALL
int ap_count_dirs (const char *path) AP_FN_ATTR_NONNULL_ALL
char * ap_make_dirstr_prefix (char *d, const char *s, int n) AP_FN_ATTR_NONNULL_ALL
char * ap_make_dirstr_parent (apr_pool_t *p, const char *s) AP_FN_ATTR_NONNULL_ALL
char * ap_make_full_path (apr_pool_t *a, const char *dir, const char *f) AP_FN_ATTR_NONNULL_ALL
int ap_os_is_path_absolute (apr_pool_t *p, const char *dir) AP_FN_ATTR_NONNULL_ALL
int ap_is_matchexp (const char *str) AP_FN_ATTR_NONNULL_ALL
int ap_strcmp_match (const char *str, const char *expected) AP_FN_ATTR_NONNULL_ALL
int ap_strcasecmp_match (const char *str, const char *expected) AP_FN_ATTR_NONNULL_ALL
char * ap_strcasestr (const char *s1, const char *s2) AP_FN_ATTR_NONNULL_ALL
const char * ap_stripprefix (const char *bigstring, const char *prefix) AP_FN_ATTR_NONNULL_ALL
char * ap_pbase64decode (apr_pool_t *p, const char *bufcoded)
char * ap_pbase64encode (apr_pool_t *p, char *string)
ap_regex_tap_pregcomp (apr_pool_t *p, const char *pattern, int cflags)
void ap_pregfree (apr_pool_t *p, ap_regex_t *reg)
char * ap_pregsub (apr_pool_t *p, const char *input, const char *source, apr_size_t nmatch, ap_regmatch_t pmatch[])
apr_status_t ap_pregsub_ex (apr_pool_t *p, char **result, const char *input, const char *source, apr_size_t nmatch, ap_regmatch_t pmatch[], apr_size_t maxlen)
void ap_content_type_tolower (char *s)
void ap_str_tolower (char *s)
void ap_str_toupper (char *s)
int ap_ind (const char *str, char c)
int ap_rind (const char *str, char c)
char * ap_escape_quotes (apr_pool_t *p, const char *instring)
char * ap_append_pid (apr_pool_t *p, const char *string, const char *delim)
apr_status_t ap_timeout_parameter_parse (const char *timeout_parameter, apr_interval_time_t *timeout, const char *default_time_unit)
int ap_request_has_body (request_rec *r)
apr_status_t ap_pstr2_alnum (apr_pool_t *p, const char *src, const char **dest)
apr_status_t ap_str2_alnum (const char *src, char *dest)
int ap_parse_form_data (request_rec *r, struct ap_filter_t *f, apr_array_header_t **ptr, apr_size_t num, apr_size_t size)
int ap_is_rdirectory (apr_pool_t *p, const char *name)
int ap_is_directory (apr_pool_t *p, const char *name)
char * ap_get_local_host (apr_pool_t *p)
void ap_log_assert (const char *szExp, const char *szFile, int nLine) __attribute__((noreturn))
const char * ap_psignature (const char *prefix, request_rec *r)
char * ap_strchr (char *s, int c)
const char * ap_strchr_c (const char *s, int c)
char * ap_strrchr (char *s, int c)
const char * ap_strrchr_c (const char *s, int c)
char * ap_strstr (char *s, const char *c)
const char * ap_strstr_c (const char *s, const char *c)
void * ap_palloc_debug (apr_pool_t *p, apr_size_t size)
void * ap_pcalloc_debug (apr_pool_t *p, apr_size_t size)
void ap_random_insecure_bytes (void *buf, apr_size_t size)
apr_uint32_t ap_random_pick (apr_uint32_t min, apr_uint32_t max)
void ap_abort_on_oom (void) __attribute__((noreturn))
void * ap_malloc (size_t size) __attribute__((malloc)) AP_FN_ATTR_ALLOC_SIZE(1)
void * ap_calloc (size_t nelem, size_t size) __attribute__((malloc)) AP_FN_ATTR_ALLOC_SIZE2(1
void *void * ap_realloc (void *ptr, size_t size) AP_FN_ATTR_WARN_UNUSED_RESULT AP_FN_ATTR_ALLOC_SIZE(2)
void ap_get_sload (ap_sload_t *ld) AP_FN_ATTR_NONNULL_ALL
void ap_get_loadavg (ap_loadavg_t *ld) AP_FN_ATTR_NONNULL_ALL
void ap_bin2hex (const void *src, apr_size_t srclen, char *dest) AP_FN_ATTR_NONNULL_ALL
int ap_has_cntrl (const char *str) AP_FN_ATTR_NONNULL_ALL
apr_status_t ap_password_validate (request_rec *r, const char *username, const char *passwd, const char *hash)
char * ap_get_exec_line (apr_pool_t *p, const char *cmd, const char *const *argv)

Define Documentation

#define ap_assert ( exp   )     ((exp) ? (void)0 : ap_log_assert(#exp,__FILE__,__LINE__))

For internal use only.

Internal Assert function

#define AP_DEBUG_ASSERT ( exp   )     ((void)0)

Redefine assert() to something more useful for an Apache...

Use ap_assert() if the condition should always be checked. Use AP_DEBUG_ASSERT() if the condition should only be checked when AP_DEBUG is defined.

#define AP_DECLARE_DATA
#define AP_DEFAULT_INDEX   "index.html"

Define this to be what your HTML directory content files are called

#define ap_default_port ( r   )     ap_run_default_port(r)

Get the default port for a request (which depends on the scheme).

Parameters:
r The request
#define ap_escape_html ( p,
 )     ap_escape_html2(p,s,0)

Escape an html string

Parameters:
p The pool to allocate from
s The html to escape
Returns:
The escaped string
Deprecated:
Replaced by apr_pescape_entity() in APR
#define ap_escape_uri ( ppool,
path   )     ap_os_escape_path(ppool,path,1)
#define AP_FILTER_ERROR   -102

Returned by any filter if the filter chain encounters an error and has already dealt with the error response.

#define ap_http_scheme ( r   )     ap_run_http_scheme(r)

Get the scheme for a request.

Parameters:
r The request
#define AP_IOBUFSIZE   8192

The size of the server's internal read-write buffers

#define ap_is_default_port ( port,
r   )     ((port) == ap_default_port(r))

Check whether port is the default port for the request r.

Parameters:
port The port number
r The request
See also:
ap_default_port
#define AP_MAX_REG_MATCH   10

The max number of regex captures that can be expanded by ap_pregsub

#define AP_MAX_SENDFILE   16777216

APR_HAS_LARGE_FILES introduces the problem of spliting sendfile into mutiple buckets, no greater than MAX(apr_size_t), and more granular than that in case the brigade code/filters attempt to read it directly. ### 16mb is an invention, no idea if it is reasonable.

#define AP_MODULE_DECLARE_DATA
#define AP_NOBODY_READ   -101

Returned by the bottom-most filter if no data was read.

See also:
ap_get_brigade().
#define AP_NOBODY_WROTE   -100

Returned by the bottom-most filter if no data was written.

See also:
ap_pass_brigade().
#define AP_NORESTART   APR_OS_START_USEERR + 1
#define AP_SERVER_PROTOCOL   "HTTP/1.1"

default HTTP Server protocol

#define ap_strchr ( s,
 )     strchr(s, c)

use this instead of strchr

#define ap_strchr_c ( s,
 )     strchr(s, c)

use this instead of strchr

#define ap_strrchr ( s,
 )     strrchr(s, c)

use this instead of strrchr

#define ap_strrchr_c ( s,
 )     strrchr(s, c)

use this instead of strrchr

#define ap_strstr ( s,
 )     strstr(s, c)

use this instead of strrstr

#define ap_strstr_c ( s,
 )     strstr(s, c)

use this instead of strrstr

#define APEXIT_CHILDFATAL   0xf

A fatal error, resulting in the whole server aborting. If a child exits with this error, the parent process considers this a server-wide fatal error and aborts.

#define APEXIT_CHILDINIT   0x3

The child died during its init sequence

#define APEXIT_CHILDSICK   0x7

The child exited due to a resource shortage. The parent should limit the rate of forking until the situation is resolved.

#define APEXIT_INIT   0x2

A fatal error arising during the server's init sequence

#define APEXIT_OK   0x0

MPM child process exit status values The MPM parent process may check the status to see if special error handling is required. a normal exit

#define CR   13

carrige return

#define CRLF   "\015\012"

carrige return /Line Feed Combo

#define CRLF_ASCII   "\015\012"

Useful for common code with either platform charset.

#define DECLINED   -1

Module declines to handle

#define DEFAULT_ACCESS_FNAME   ".htaccess"

Define this to be what your per-directory security files are called

#define DEFAULT_ADD_DEFAULT_CHARSET_NAME   "iso-8859-1"

The default default character set name to add if AddDefaultCharset is enabled. Overridden with AddDefaultCharsetName.

#define DEFAULT_ADMIN   "[no address given]"

Default administrator's address

#define DEFAULT_ERRORLOG   "logs/error_log"

The name of the log files

#define DEFAULT_HTTP_PORT   80

default HTTP Port

#define DEFAULT_HTTPS_PORT   443

default HTTPS Port

#define DEFAULT_KEEPALIVE   100

The number of requests to entertain per connection

#define DEFAULT_KEEPALIVE_TIMEOUT   5

The timeout for waiting for keepalive timeout until next request

#define DEFAULT_LIMIT_REQUEST_FIELDS   100

default limit on number of request header fields

#define DEFAULT_LIMIT_REQUEST_FIELDSIZE   8190

default limit on bytes in any one header field

#define DEFAULT_LIMIT_REQUEST_LINE   8190

default limit on bytes in Request-Line (Method+URI+HTTP-version)

#define DEFAULT_PATH   "/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin"

The name of the server config file The default path for CGI scripts if none is currently set

#define DEFAULT_TIMEOUT   60

The timeout for waiting for messages

#define DEFAULT_VHOST_ADDR   0xfffffffful

The address 255.255.255.255, when used as a virtualhost address, will become the "default" server when the ip doesn't match other vhosts.

#define DOCTYPE_HTML_2_0
Value:
"<!DOCTYPE HTML PUBLIC \"-//IETF//" \
                          "DTD HTML 2.0//EN\">\n"

The name of the MIME types file HTML 2.0 Doctype

#define DOCTYPE_HTML_3_2
Value:
"<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                          "DTD HTML 3.2 Final//EN\">\n"

HTML 3.2 Doctype

#define DOCTYPE_HTML_4_0F
Value:
"<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                          "DTD HTML 4.0 Frameset//EN\"\n" \
                          "\"http://www.w3.org/TR/REC-html40/frameset.dtd\">\n"

HTML 4.0 Frameset Doctype

#define DOCTYPE_HTML_4_0S
Value:
"<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                          "DTD HTML 4.0//EN\"\n" \
                          "\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"

HTML 4.0 Strict Doctype

#define DOCTYPE_HTML_4_0T
Value:
"<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                          "DTD HTML 4.0 Transitional//EN\"\n" \
                          "\"http://www.w3.org/TR/REC-html40/loose.dtd\">\n"

HTML 4.0 Transitional Doctype

#define DOCTYPE_XHTML_1_0F
Value:
"<!DOCTYPE html PUBLIC \"-//W3C//" \
                           "DTD XHTML 1.0 Frameset//EN\"\n" \
                           "\"http://www.w3.org/TR/xhtml1/DTD/" \
                           "xhtml1-frameset.dtd\">"

XHTML 1.0 Frameset Doctype

#define DOCTYPE_XHTML_1_0S
Value:
"<!DOCTYPE html PUBLIC \"-//W3C//" \
                           "DTD XHTML 1.0 Strict//EN\"\n" \
                           "\"http://www.w3.org/TR/xhtml1/DTD/" \
                           "xhtml1-strict.dtd\">\n"

XHTML 1.0 Strict Doctype

#define DOCTYPE_XHTML_1_0T
Value:
"<!DOCTYPE html PUBLIC \"-//W3C//" \
                           "DTD XHTML 1.0 Transitional//EN\"\n" \
                           "\"http://www.w3.org/TR/xhtml1/DTD/" \
                           "xhtml1-transitional.dtd\">\n"

XHTML 1.0 Transitional Doctype

#define DOCUMENT_LOCATION   HTTPD_ROOT "/htdocs"

Define this to be the default server home dir. Most things later in this file with a relative pathname will have this added. Default location of documents. Can be overridden by the DocumentRoot directive.

#define DONE   -2

Module has served the response completely

  • it's safe to die() with no more output
#define DYNAMIC_MODULE_LIMIT   256

Maximum number of dynamically loaded modules

#define HTTP_VERSION ( major,
minor   )     (1000*(major)+(minor))

Internal representation for a HTTP protocol number, e.g., HTTP/1.1

#define HTTP_VERSION_MAJOR ( number   )     ((number)/1000)

Major part of HTTP protocol

#define HTTP_VERSION_MINOR ( number   )     ((number)%1000)

Minor part of HTTP protocol

#define HUGE_STRING_LEN   8192

The length of a Huge string

#define LF   10

linefeed

#define MAX_STRING_LEN   HUGE_STRING_LEN

The default string length

#define OK   0

Module has handled this stage.

#define SUEXEC_BIN   HTTPD_ROOT "/bin/suexec"

The path to the suExec wrapper, can be overridden in Configuration

#define SUSPENDED   -3

Module will handle the remainder of the request. The core will never invoke the request again,


Typedef Documentation

typedef struct ap_loadavg_t ap_loadavg_t
See also:
ap_method_list_t
typedef struct ap_sload_t ap_sload_t
typedef struct conn_rec conn_rec

A structure that represents one connection

A structure that represents one slave connection

typedef struct conn_state_t conn_state_t

A structure that represents the status of the current connection

typedef struct process_rec process_rec

A structure that represents one process

typedef struct request_rec request_rec

A structure that represents the current request

typedef struct server_rec server_rec

A structure that represents a virtual server


Enumeration Type Documentation

Enumeration of connection keepalive options.

Enumerator:
AP_CONN_UNKNOWN 
AP_CONN_CLOSE 
AP_CONN_KEEPALIVE 
Enumerator:
CONN_SENSE_DEFAULT 
CONN_SENSE_WANT_READ 
CONN_SENSE_WANT_WRITE 

Enumeration of connection states The two states CONN_STATE_LINGER_NORMAL and CONN_STATE_LINGER_SHORT may only be set by the MPM. Use CONN_STATE_LINGER outside of the MPM.

Enumerator:
CONN_STATE_CHECK_REQUEST_LINE_READABLE 
CONN_STATE_READ_REQUEST_LINE 
CONN_STATE_HANDLER 
CONN_STATE_WRITE_COMPLETION 
CONN_STATE_SUSPENDED 
CONN_STATE_LINGER 
CONN_STATE_LINGER_NORMAL 
CONN_STATE_LINGER_SHORT 

Function Documentation

void ap_abort_on_oom ( void   ) 

Abort with a error message signifying out of memory

void ap_add_version_component ( apr_pool_t pconf,
const char *  component 
)

Add a component to the server description and banner strings

Parameters:
pconf The pool to allocate the component from
component The string to add
char* ap_append_pid ( apr_pool_t p,
const char *  string,
const char *  delim 
)

Given a string, append the PID deliminated by delim. Usually used to create a pid-appended filepath name (eg: /a/b/foo -> /a/b/foo.6726). A function, and not a macro, to avoid unistd.h dependency

Parameters:
p The pool to allocate memory from
string The string to append the PID to
delim The string to use to deliminate the string from the PID
Returns:
A copy of the string with the PID appended
void ap_bin2hex ( const void *  src,
apr_size_t  srclen,
char *  dest 
)

Convert binary data into a hex string

Parameters:
src pointer to the data
srclen length of the data
dest pointer to buffer of length (2 * srclen + 1). The resulting string will be NUL-terminated.
Deprecated:
Replaced by apr_escape_hex() in APR
void* ap_calloc ( size_t  nelem,
size_t  size 
)

Wrapper for calloc() that calls ap_abort_on_oom() if out of memory

Parameters:
nelem number of elements to allocate memory for
size size of a single element
Returns:
pointer to the allocated memory
Note:
ap_calloc may be implemented as a macro
char* ap_construct_server ( apr_pool_t p,
const char *  hostname,
apr_port_t  port,
const request_rec r 
)

Construct a full hostname

Parameters:
p The pool to allocate from
hostname The hostname of the server
port The port the server is running on
r The current request
Returns:
The server's hostname
void ap_content_type_tolower ( char *  s  ) 

We want to downcase the type/subtype for comparison purposes but nothing else because ;parameter=foo values are case sensitive.

Parameters:
s The content-type to convert to lowercase
const char* ap_context_document_root ( request_rec r  ) 

Get the context_document_root for a request. This is a generalization of the document root, which is too limited in the presence of mappers like mod_userdir and mod_alias. The context_document_root is the directory on disk that maps to the context_prefix URI prefix.

Parameters:
r The request
Note:
For resources that do not map to the file system or for very complex mappings, this information may still be wrong.
const char* ap_context_prefix ( request_rec r  ) 

Get the context_prefix for a request. The context_prefix URI prefix maps to the context_document_root on disk.

Parameters:
r The request
int ap_count_dirs ( const char *  path  ) 

Count the number of directories in a path

Parameters:
path The path to count
Returns:
The number of directories
apr_size_t ap_escape_errorlog_item ( char *  dest,
const char *  source,
apr_size_t  buflen 
)

Escape a string for logging into the error log (without a pool)

Parameters:
dest The buffer to write to
source The string to escape
buflen The buffer size for the escaped string (including "\0")
Returns:
The len of the escaped string (always < maxlen)
Deprecated:
Replaced by apr_escape_echo() in APR
char* ap_escape_html2 ( apr_pool_t p,
const char *  s,
int  toasc 
)

Escape an html string

Parameters:
p The pool to allocate from
s The html to escape
toasc Whether to escape all non-ASCII chars to &#nnn;
Returns:
The escaped string
Deprecated:
Replaced by apr_pescape_entity() in APR
char* ap_escape_logitem ( apr_pool_t p,
const char *  str 
)

Escape a string for logging

Parameters:
p The pool to allocate from
str The string to escape
Returns:
The escaped string
Deprecated:
Replaced by apr_pescape_echo() in APR
char* ap_escape_path_segment ( apr_pool_t p,
const char *  s 
)

Escape a path segment, as defined in RFC 1808

Parameters:
p The pool to allocate from
s The path to convert
Returns:
The converted URL
Deprecated:
Replaced by apr_pescape_path_segment() in APR
char* ap_escape_path_segment_buffer ( char *  c,
const char *  s 
)

Escape a path segment, as defined in RFC 1808, to a preallocated buffer.

Parameters:
c The preallocated buffer to write to
s The path to convert
Returns:
The converted URL (c)
Deprecated:
Replaced by apr_escape_path_segment() in APR
char* ap_escape_quotes ( apr_pool_t p,
const char *  instring 
)

Given a string, replace any bare " with \" .

Parameters:
p The pool to allocate memory from
instring The string to search for "
Returns:
A copy of the string with escaped quotes
Deprecated:
Replaced by apr_pescape_echo() in APR
char* char* ap_escape_shell_cmd ( apr_pool_t p,
const char *  s 
)

Escape a shell command

Parameters:
p The pool to allocate from
s The command to escape
Returns:
The escaped shell command
Deprecated:
Replaced with apr_escape_shell() in APR
char* ap_escape_urlencoded ( apr_pool_t p,
const char *  s 
)

Escape a string as application/x-www-form-urlencoded

Parameters:
p The pool to allocate from
s The path to convert
Returns:
The converted URL
Deprecated:
Replaced by apr_pescape_url() in APR
char* ap_escape_urlencoded_buffer ( char *  c,
const char *  s 
)

Escape a string as application/x-www-form-urlencoded, to a preallocated buffer

Parameters:
c The preallocated buffer to write to
s The path to convert
Returns:
The converted URL (c)
Deprecated:
Replaced by apr_escape_url() in APR
char* ap_field_noparam ( apr_pool_t p,
const char *  intype 
)

Examine a field value (such as a media-/content-type) string and return it sans any parameters; e.g., strip off any ';charset=foo' and the like.

Parameters:
p Pool to allocate memory from
intype The field to examine
Returns:
A copy of the field minus any parameters
int ap_find_etag_strong ( apr_pool_t p,
const char *  line,
const char *  tok 
)

Do a strong ETag comparison within an HTTP field value list.

Parameters:
p The pool to allocate from
line The field value list to search
tok The token to search for
Returns:
1 if found, 0 if not found.
int ap_find_etag_weak ( apr_pool_t p,
const char *  line,
const char *  tok 
)

Do a weak ETag comparison within an HTTP field value list.

Parameters:
p The pool to allocate from
line The field value list to search
tok The token to search for
Returns:
1 if found, 0 if not found.
int ap_find_last_token ( apr_pool_t p,
const char *  line,
const char *  tok 
)

find http tokens from the end of the line

Parameters:
p The pool to allocate from
line The line to find the token
tok The token to find
Returns:
1 if the token is found, 0 otherwise
int ap_find_list_item ( apr_pool_t p,
const char *  line,
const char *  tok 
)

Find an item in canonical form (lowercase, no extra spaces) within an HTTP field value list.

Parameters:
p The pool to allocate from
line The field value list to search
tok The token to search for
Returns:
1 if found, 0 if not found.
int ap_find_token ( apr_pool_t p,
const char *  line,
const char *  tok 
)

Find http tokens, see the definition of token from RFC2068

Parameters:
p The pool to allocate from
line The line to find the token
tok The token to find
Returns:
1 if the token is found, 0 otherwise
char* ap_get_exec_line ( apr_pool_t p,
const char *  cmd,
const char *const *  argv 
)

Short function to execute a command and return the first line of output minus \r \n. Useful for "obscuring" passwords via exec calls

Parameters:
p the pool to allocate from
cmd the command to execute
argv the arguments to pass to the cmd
Returns:
ptr to characters or NULL on any error
char* ap_get_list_item ( apr_pool_t p,
const char **  field 
)

Retrieve an HTTP header field list item, as separated by a comma, while stripping insignificant whitespace and lowercasing anything not in a quoted string or comment.

Parameters:
p The pool to allocate from
field The field to retrieve
Returns:
The return value is a new string containing the converted list item (or NULL if none) and the address pointed to by field is shifted to the next non-comma, non-whitespace.
void ap_get_loadavg ( ap_loadavg_t ld  ) 

Get server load averages (ala getloadavg)

Parameters:
ld struct to populate: -1 in fields means error
char* ap_get_local_host ( apr_pool_t p  ) 

Determine the local host name for the current machine

Parameters:
p The pool to allocate from
Returns:
A copy of the local host name
const char* ap_get_server_banner ( void   ) 

Get the server banner in a form suitable for sending over the network, with the level of information controlled by the ServerTokens directive.

Returns:
The server banner
const char* ap_get_server_built ( void   ) 

Get the date a time that the server was built

Returns:
The server build time string
const char* ap_get_server_description ( void   ) 

Get the server description in a form suitable for local displays, status reports, or logging. This includes the detailed server version and information about some modules. It is not affected by the ServerTokens directive.

Returns:
The server description
void ap_get_server_revision ( ap_version_t version  ) 

Return httpd's version information in a numeric form.

Parameters:
version Pointer to a version structure for returning the version information.
void ap_get_sload ( ap_sload_t ld  ) 

Get server load params

Parameters:
ld struct to populate: -1 in fields means error
char* ap_get_token ( apr_pool_t p,
const char **  accept_line,
int  accept_white 
)

Retrieve a token, spacing over it and adjusting the pointer to the first non-white byte afterwards. Note that these tokens are delimited by semis and commas and can also be delimited by whitespace at the caller's option.

Parameters:
p The pool to allocate from
accept_line The line to retrieve the token from (adjusted afterwards)
accept_white Is it delimited by whitespace
Returns:
the token
void ap_getparents ( char *  name  ) 

Remove all ./ and xx/../ substrings from a file name. Also remove any leading ../ or /../ substrings.

Parameters:
name the file name to parse
char* ap_getword ( apr_pool_t p,
const char **  line,
char  stop 
)

Get the characters until the first occurrence of a specified character

Parameters:
p The pool to allocate memory from
line The string to get the characters from
stop The character to stop at
Returns:
A copy of the characters up to the first stop character
char* ap_getword_conf ( apr_pool_t p,
const char **  line 
)

Get the second word in the string paying attention to quoting

Parameters:
p The pool to allocate from
line The line to traverse
Returns:
A copy of the string
char* ap_getword_conf_nc ( apr_pool_t p,
char **  line 
)

Get the second word in the string paying attention to quoting

Parameters:
p The pool to allocate from
line The line to traverse
Returns:
A copy of the string
Note:
The same as ap_getword_conf(), except it doesn't use const char **.
char* ap_getword_nc ( apr_pool_t p,
char **  line,
char  stop 
)

Get the characters until the first occurrence of a specified character

Parameters:
p The pool to allocate memory from
line The string to get the characters from
stop The character to stop at
Returns:
A copy of the characters up to the first stop character
Note:
This is the same as ap_getword(), except it doesn't use const char **.
char* ap_getword_nulls ( apr_pool_t p,
const char **  line,
char  stop 
)

Get all characters from the first occurrence of stop to the first "\0"

Parameters:
p The pool to allocate memory from
line The line to traverse
stop The character to start at
Returns:
A copy of all characters after the first occurrence of the specified character
char* ap_getword_nulls_nc ( apr_pool_t p,
char **  line,
char  stop 
)

Get all characters from the first occurrence of stop to the first "\0"

Parameters:
p The pool to allocate memory from
line The line to traverse
stop The character to start at
Returns:
A copy of all characters after the first occurrence of the specified character
Note:
The same as ap_getword_nulls(), except it doesn't use const char **.
char* ap_getword_white ( apr_pool_t p,
const char **  line 
)

Get the first word from a given string. A word is defined as all characters up to the first whitespace.

Parameters:
p The pool to allocate memory from
line The string to traverse
Returns:
The first word in the line
char* ap_getword_white_nc ( apr_pool_t p,
char **  line 
)

Get the first word from a given string. A word is defined as all characters up to the first whitespace.

Parameters:
p The pool to allocate memory from
line The string to traverse
Returns:
The first word in the line
Note:
The same as ap_getword_white(), except it doesn't use const char**
int ap_has_cntrl ( const char *  str  ) 

Check if string contains a control character

Parameters:
str the string to check
Returns:
1 if yes, 0 if no control characters
char* ap_ht_time ( apr_pool_t p,
apr_time_t  t,
const char *  fmt,
int  gmt 
)

Convert a time from an integer into a string in a specified format

Parameters:
p The pool to allocate memory from
t The time to convert
fmt The format to use for the conversion
gmt Convert the time for GMT?
Returns:
The string that represents the specified time
int ap_ind ( const char *  str,
char  c 
)

Search a string from left to right for the first occurrence of a specific character

Parameters:
str The string to search
c The character to search for
Returns:
The index of the first occurrence of c in str
int ap_is_directory ( apr_pool_t p,
const char *  name 
)

Given the name of an object in the file system determine if it is a directory - this version is symlink aware

Parameters:
p The pool to allocate from
name The name of the object to check
Returns:
1 if it is a directory, 0 otherwise
int ap_is_matchexp ( const char *  str  ) 

Does the provided string contain wildcard characters? This is useful for determining if the string should be passed to strcmp_match or to strcmp. The only wildcard characters recognized are '?' and '*'

Parameters:
str The string to check
Returns:
1 if the string has wildcards, 0 otherwise
int ap_is_rdirectory ( apr_pool_t p,
const char *  name 
)

Given the name of an object in the file system determine if it is a directory

Parameters:
p The pool to allocate from
name The name of the object to check
Returns:
1 if it is a directory, 0 otherwise
int ap_is_url ( const char *  u  ) 

Check for an Absolute URI syntax

Parameters:
u The string to check
Returns:
1 if URI, 0 otherwise
void ap_log_assert ( const char *  szExp,
const char *  szFile,
int  nLine 
)

Log an assertion to the error log

Parameters:
szExp The assertion that failed
szFile The file the assertion is in
nLine The line the assertion is defined on
char* ap_make_dirstr_parent ( apr_pool_t p,
const char *  s 
)

Return the parent directory name (including trailing /) of the file s

Parameters:
p The pool to allocate from
s The file to get the parent of
Returns:
A copy of the file's parent directory
char* ap_make_dirstr_prefix ( char *  d,
const char *  s,
int  n 
)

Copy at most n leading directories of s into d. d should be at least as large as s plus 1 extra byte

Parameters:
d The location to copy to
s The location to copy from
n The number of directories to copy
Returns:
value is the ever useful pointer to the trailing "\0" of d
Note:
on platforms with drive letters, n = 0 returns the "/" root, whereas n = 1 returns the "d:/" root. On all other platforms, n = 0 returns the empty string.
char* ap_make_full_path ( apr_pool_t a,
const char *  dir,
const char *  f 
)

Given a directory and filename, create a single path from them. This function is smart enough to ensure that there is a single '/' between the directory and file names

Parameters:
a The pool to allocate from
dir The directory name
f The filename
Returns:
A copy of the full path, with one byte of extra space after the NUL to allow the caller to add a trailing '/'.
Note:
Never consider using this function if you are dealing with filesystem names that need to remain canonical, unless you are merging an apr_dir_read path and returned filename. Otherwise, the result is not canonical.
void* ap_malloc ( size_t  size  ) 

Wrapper for malloc() that calls ap_abort_on_oom() if out of memory

Parameters:
size size of the memory block
Returns:
pointer to the allocated memory
Note:
ap_malloc may be implemented as a macro
void ap_no2slash ( char *  name  ) 

Convert all double slashes to single slashes

Parameters:
name The string to convert
char* ap_os_escape_path ( apr_pool_t p,
const char *  path,
int  partial 
)

convert an OS path to a URL in an OS dependent way.

Parameters:
p The pool to allocate from
path The path to convert
partial if set, assume that the path will be appended to something with a '/' in it (and thus does not prefix "./").
Returns:
The converted URL, with one byte of extra space after the NUL to allow the caller to add a trailing '/'.
Deprecated:
Replaced by apr_pescape_path() in APR
int ap_os_is_path_absolute ( apr_pool_t p,
const char *  dir 
)

Test if the given path has an an absolute path.

Parameters:
p The pool to allocate from
dir The directory name
Note:
The converse is not necessarily true, some OS's (Win32/OS2/Netware) have multiple forms of absolute paths. This only reports if the path is absolute in a canonical sense.
void* ap_palloc_debug ( apr_pool_t p,
apr_size_t  size 
)
int ap_parse_form_data ( request_rec r,
struct ap_filter_t f,
apr_array_header_t **  ptr,
apr_size_t  num,
apr_size_t  size 
)

Read the body and parse any form found, which must be of the type application/x-www-form-urlencoded.

Parameters:
r request containing POSTed form data
f filter
ptr returned array of ap_form_pair_t
num max num of params or -1 for unlimited
size max size allowed for parsed data
Returns:
OK or HTTP error
const char* ap_parse_token_list_strict ( apr_pool_t p,
const char *  tok,
apr_array_header_t **  tokens,
int  skip_invalid 
)

Retrieve an array of tokens in the format "1#token" defined in RFC2616. Only accepts ',' as a delimiter, does not accept quoted strings, and errors on any separator.

Parameters:
p The pool to allocate from
tok The line to read tokens from
tokens Pointer to an array of tokens. If not NULL, must be an array of char*, otherwise it will be allocated on p when a token is found
skip_invalid If true, when an invalid separator is encountered, it will be ignored.
Returns:
NULL on success, an error string otherwise.
Remarks:
*tokens may be NULL on output if NULL in input and no token is found
apr_status_t ap_password_validate ( request_rec r,
const char *  username,
const char *  passwd,
const char *  hash 
)

Wrapper for apr_password_validate() to cache expensive calculations

Parameters:
r the current request
username username of the user
passwd password string
hash hash string to be passwd to apr_password_validate()
Returns:
APR_SUCCESS if passwords match, APR_EMISMATCH or error otherwise
Note:
Currently, ap_password_validate() only caches the result of the most recent call with the same connection as r. In the future, it may also do rate-limiting against brute-force attacks.
char* ap_pbase64decode ( apr_pool_t p,
const char *  bufcoded 
)

Decode a base64 encoded string into memory allocated from a pool

Parameters:
p The pool to allocate from
bufcoded The encoded string
Returns:
The decoded string
Deprecated:
Replaced by apr_pbase64_decode() in APR.
char* ap_pbase64encode ( apr_pool_t p,
char *  string 
)

Encode a string into memory allocated from a pool in base 64 format

Parameters:
p The pool to allocate from
string The plaintext string
Returns:
The encoded string
Deprecated:
Replaced by apr_pbase64_encode() in APR.
void* ap_pcalloc_debug ( apr_pool_t p,
apr_size_t  size 
)
ap_regex_t* ap_pregcomp ( apr_pool_t p,
const char *  pattern,
int  cflags 
)

Compile a regular expression to be used later. The regex is freed when the pool is destroyed.

Parameters:
p The pool to allocate from
pattern the regular expression to compile
cflags The bitwise or of one or more of the following:

  • REG_EXTENDED - Use POSIX extended Regular Expressions
  • REG_ICASE - Ignore case
  • REG_NOSUB - Support for substring addressing of matches not required
  • REG_NEWLINE - Match-any-character operators don't match new-line
Returns:
The compiled regular expression
void ap_pregfree ( apr_pool_t p,
ap_regex_t reg 
)

Free the memory associated with a compiled regular expression

Parameters:
p The pool the regex was allocated from
reg The regular expression to free
Note:
This function is only necessary if the regex should be cleaned up before the pool
char* ap_pregsub ( apr_pool_t p,
const char *  input,
const char *  source,
apr_size_t  nmatch,
ap_regmatch_t  pmatch[] 
)

After performing a successful regex match, you may use this function to perform a series of string substitutions based on subexpressions that were matched during the call to ap_regexec. This function is limited to result strings of 64K. Consider using ap_pregsub_ex() instead.

Parameters:
p The pool to allocate from
input An arbitrary string containing $1 through $9. These are replaced with the corresponding matched sub-expressions
source The string that was originally matched to the regex
nmatch the nmatch returned from ap_pregex
pmatch the pmatch array returned from ap_pregex
Returns:
The substituted string, or NULL on error
apr_status_t ap_pregsub_ex ( apr_pool_t p,
char **  result,
const char *  input,
const char *  source,
apr_size_t  nmatch,
ap_regmatch_t  pmatch[],
apr_size_t  maxlen 
)

After performing a successful regex match, you may use this function to perform a series of string substitutions based on subexpressions that were matched during the call to ap_regexec

Parameters:
p The pool to allocate from
result where to store the result, will be set to NULL on error
input An arbitrary string containing $1 through $9. These are replaced with the corresponding matched sub-expressions
source The string that was originally matched to the regex
nmatch the nmatch returned from ap_pregex
pmatch the pmatch array returned from ap_pregex
maxlen the maximum string length to return, 0 for unlimited
Returns:
APR_SUCCESS if successful, APR_ENOMEM or other error code otherwise.
const char* ap_psignature ( const char *  prefix,
request_rec r 
)

Get HTML describing the address and (optionally) admin of the server.

Parameters:
prefix Text which is prepended to the return value
r The request_rec
Returns:
HTML describing the server, allocated in r's pool.
apr_status_t ap_pstr2_alnum ( apr_pool_t p,
const char *  src,
const char **  dest 
)

Cleanup a string (mainly to be filesystem safe) We only allow '_' and alphanumeric chars. Non-printable map to 'x' and all others map to '_'

Parameters:
p pool to use to allocate dest
src string to clean up
dest cleaned up, allocated string
Returns:
Status value indicating whether the cleaning was successful or not.
void ap_random_insecure_bytes ( void *  buf,
apr_size_t  size 
)

Generate pseudo random bytes. This is a convenience interface to apr_random. It is cheaper but less secure than apr_generate_random_bytes().

Parameters:
buf where to store the bytes
size number of bytes to generate
Note:
ap_random_insecure_bytes() is thread-safe, it uses a mutex on threaded MPMs.
apr_uint32_t ap_random_pick ( apr_uint32_t  min,
apr_uint32_t  max 
)

Get a pseudo random number in a range.

Parameters:
min low end of range
max high end of range
Returns:
a number in the range
void* void* ap_realloc ( void *  ptr,
size_t  size 
)

Wrapper for realloc() that calls ap_abort_on_oom() if out of memory

Parameters:
ptr pointer to the old memory block (or NULL)
size new size of the memory block
Returns:
pointer to the reallocated memory
Note:
ap_realloc may be implemented as a macro
int ap_request_has_body ( request_rec r  ) 

Determine if a request has a request body or not.

Parameters:
r the request_rec of the request
Returns:
truth value
const char* ap_resolve_env ( apr_pool_t p,
const char *  word 
)

Check a string for any config define or environment variable construct and replace each of them by the value of that variable, if it exists. The default syntax of the constructs is ${ENV} but can be changed by setting the define::* config defines. If the variable does not exist, leave the ${ENV} construct alone but print a warning.

Parameters:
p The pool to allocate from
word The string to check
Returns:
The string with the replaced environment variables
int ap_rind ( const char *  str,
char  c 
)

Search a string from right to left for the first occurrence of a specific character

Parameters:
str The string to search
c The character to search for
Returns:
The index of the first occurrence of c in str
void ap_set_context_info ( request_rec r,
const char *  prefix,
const char *  document_root 
)

Set context_prefix and context_document_root for a request.

Parameters:
r The request
prefix the URI prefix, without trailing slash
document_root the corresponding directory on disk, without trailing slash
Note:
If one of prefix of document_root is NULL, the corrsponding property will not be changed.
void ap_set_document_root ( request_rec r,
const char *  document_root 
)

Set per-request document root. This is for mass virtual hosting modules that want to provide the correct DOCUMENT_ROOT value to scripts.

Parameters:
r The request
document_root the document root for the request.
const char* ap_size_list_item ( const char **  field,
int *  len 
)

Size an HTTP header field list item, as separated by a comma.

Parameters:
field The field to size
len The length of the field
Returns:
The return value is a pointer to the beginning of the non-empty list item within the original string (or NULL if there is none) and the address of field is shifted to the next non-comma, non-whitespace character. len is the length of the item excluding any beginning whitespace.
apr_status_t ap_str2_alnum ( const char *  src,
char *  dest 
)

Cleanup a string (mainly to be filesystem safe) We only allow '_' and alphanumeric chars. Non-printable map to 'x' and all others map to '_'

Parameters:
src string to clean up
dest cleaned up, pre-allocated string
Returns:
Status value indicating whether the cleaning was successful or not.
void ap_str_tolower ( char *  s  ) 

convert a string to all lowercase

Parameters:
s The string to convert to lowercase
void ap_str_toupper ( char *  s  ) 

convert a string to all uppercase

Parameters:
s The string to convert to uppercase
int ap_strcasecmp_match ( const char *  str,
const char *  expected 
)

Determine if a string matches a patterm containing the wildcards '?' or '*', ignoring case

Parameters:
str The string to check
expected The pattern to match against
Returns:
0 if the two strings match, 1 otherwise
char* ap_strcasestr ( const char *  s1,
const char *  s2 
)

Find the first occurrence of the substring s2 in s1, regardless of case

Parameters:
s1 The string to search
s2 The substring to search for
Returns:
A pointer to the beginning of the substring
Remarks:
See apr_strmatch() for a faster alternative
char* ap_strchr ( char *  s,
int  c 
)
const char* ap_strchr_c ( const char *  s,
int  c 
)
int ap_strcmp_match ( const char *  str,
const char *  expected 
)

Determine if a string matches a patterm containing the wildcards '?' or '*'

Parameters:
str The string to check
expected The pattern to match against
Returns:
0 if the two strings match, 1 otherwise
const char* ap_stripprefix ( const char *  bigstring,
const char *  prefix 
)

Return a pointer to the location inside of bigstring immediately after prefix

Parameters:
bigstring The input string
prefix The prefix to strip away
Returns:
A pointer relative to bigstring after prefix
char* ap_strrchr ( char *  s,
int  c 
)
const char* ap_strrchr_c ( const char *  s,
int  c 
)
char* ap_strstr ( char *  s,
const char *  c 
)
const char* ap_strstr_c ( const char *  s,
const char *  c 
)
apr_status_t ap_timeout_parameter_parse ( const char *  timeout_parameter,
apr_interval_time_t timeout,
const char *  default_time_unit 
)

Parse a given timeout parameter string into an apr_interval_time_t value. The unit of the time interval is given as postfix string to the numeric string. Currently the following units are understood:

ms : milliseconds s : seconds mi[n] : minutes h : hours

If no unit is contained in the given timeout parameter the default_time_unit will be used instead.

Parameters:
timeout_parameter The string containing the timeout parameter.
timeout The timeout value to be returned.
default_time_unit The default time unit to use if none is specified in timeout_parameter.
Returns:
Status value indicating whether the parsing was successful or not.
int ap_unescape_all ( char *  url  ) 

Unescape a string

Parameters:
url The string to unescape
Returns:
0 on success, non-zero otherwise
int ap_unescape_url ( char *  url  ) 

Unescape a URL

Parameters:
url The url to unescape
Returns:
0 on success, non-zero otherwise
Deprecated:
Replaced by apr_unescape_url() in APR
int ap_unescape_url_keep2f ( char *  url,
int  decode_slashes 
)

Unescape a URL, but leaving 2f (slashes) escaped

Parameters:
url The url to unescape
decode_slashes Whether or not slashes should be decoded
Returns:
0 on success, non-zero otherwise
Deprecated:
Replaced by apr_unescape_url() in APR
int ap_unescape_urlencoded ( char *  query  ) 

Unescape an application/x-www-form-urlencoded string

Parameters:
query The query to unescape
Returns:
0 on success, non-zero otherwise
Deprecated:
Replaced by apr_unescape_url() in APR
Generated on Wed Aug 20 14:01:53 2014 for Apache2 by  doxygen 1.6.3