<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
 <HEAD>
  <TITLE>Apache Web server API Dictionary
  </TITLE>
 </HEAD>
 <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
 <BODY
  BGCOLOR="#FFFFFF"
  TEXT="#000000"
  LINK="#0000FF"
  VLINK="#000080"
  ALINK="#FF0000"
 >
<!--#include virtual="header.html" -->
  <H1 ALIGN="CENTER">
   Apache Web server API Dictionary
  </H1>
  <BLOCKQUOTE>
   <STRONG>
    This file is very much under construction.  You should not take
    anything you find in it at face value.
   </STRONG>
  </BLOCKQUOTE>

<!--
	Each symbol is defined as a link target.  The name of the target
	is *identical* to the symbol, including upper- and lower-case
	spelling.

	Each definition that references an Apache structure type must
	make the reference into a link to the type's definition.

API_EXPORT_NONSTD(int) ap_bprintf(BUFF *fb, const char *fmt, ...)
API_EXPORT(char *) ap_canonical_filename(pool *p, const char *file)
API_EXPORT(mutex *) ap_create_mutex(char *name)
API_EXPORT(void) ap_destroy_mutex(mutex *mutex_id)
API_EXPORT(char *) ap_escape_quotes(pool *, const char *)
API_EXPORT(const char *) ap_get_server_built(void)
API_EXPORT(const char *) ap_get_server_version(void)
API_EXPORT(void) ap_log_error_old(const char *err, server_rec *s)
API_EXPORT(char *) ap_md5(pool *a, unsigned char *string)
API_EXPORT(char *) ap_md5contextTo64(pool *p, AP_MD5_CTX * context)
API_EXPORT(char *) ap_md5digest(pool *p, FILE *infile)
API_EXPORT(mutex *) ap_open_mutex(char *name)
API_EXPORT(int) ap_parse_hostinfo_components(pool *p, const char *hostinfo, uri_components *uptr)
API_EXPORT_NONSTD(char *) ap_psprintf(struct pool *, const char *fmt, ...)
API_EXPORT(char *) ap_pvsprintf(struct pool *, const char *fmt, va_list)
API_EXPORT(int) ap_release_mutex(mutex *mutex_id)
API_EXPORT(int) ap_snprintf(char *, size_t, const char *, ...)

-->
<!-- DO NOT EDIT BELOW THIS LINE.  The contents of this file between -->
<!-- the sentinel lines is generated by a script, so any edits here  -->
<!-- will be lost the next time the script is run.                   -->
<!-- %%BEGIN%% -->
  <H2>Table of Contents</H2>
  <UL>
   <LI><A HREF="#Routines">Routine Descriptions</A>
   </LI>
   <LI><A HREF="#Structures">Data Structure Definitions</A>
   </LI>
   <LI><A HREF="#Cells">Global Data Cells</A>
   </LI>
   <LI><A HREF="#Constants">Constant Definitions</A>
   </LI>
  </UL>
  <HR>
  <H2>
   <A NAME="Routines">
    Routine Descriptions
   </A>
  </H2>
  <HR>
  <H3>
   <A NAME="ap_acquire_mutex">
    ap_acquire_mutex
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_acquire_mutex(<A HREF="#mutex">mutex</A> *mutex_id);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_create_mutex"><SAMP>ap_create_mutex</SAMP></A>,
        <A HREF="#ap_destroy_mutex"><SAMP>ap_destroy_mutex</SAMP></A>,
        <A HREF="#ap_open_mutex"><SAMP>ap_open_mutex</SAMP></A>,
        <A HREF="#mutex"><SAMP>mutex</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_add_cgi_vars">
    ap_add_cgi_vars
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_add_cgi_vars(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_add_common_vars">
    ap_add_common_vars
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_add_common_vars(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_add_module">
    ap_add_module
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_add_module(<A HREF="#module">module</A> *m);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_add_named_module"><SAMP>ap_add_named_module</SAMP></A>,
        <A HREF="#core_module"><SAMP>core_module</SAMP></A>,
        <A HREF="#module"><SAMP>module</SAMP></A>,
        <A HREF="#top_module"><SAMP>top_module</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_add_named_module">
    ap_add_named_module
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_add_named_module(const char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_add_module"><SAMP>ap_add_module</SAMP></A>,
        <A HREF="#core_module"><SAMP>core_module</SAMP></A>,
        <A HREF="#module"><SAMP>module</SAMP></A>,
        <A HREF="#top_module"><SAMP>top_module</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_add_per_dir_conf">
    ap_add_per_dir_conf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_add_per_dir_conf(<A HREF="#server_rec">server_rec</A> *s, void *dir_config);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_add_per_url_conf">
    ap_add_per_url_conf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_add_per_url_conf(<A HREF="#server_rec">server_rec</A> *s, void *url_config);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_allow_options">
    ap_allow_options
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_allow_options(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_allow_overrides">
    ap_allow_overrides
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_allow_overrides(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_append_arrays">
    ap_append_arrays
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#array_header">array_header</A> *ap_append_arrays(<A HREF="#pool">pool</A> *p, const <A HREF="#array_header">array_header</A> *a, const <A HREF="#array_header">array_header</A> *);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_array_cat"><SAMP>ap_array_cat</SAMP></A>,
        <A HREF="#ap_copy_array"><SAMP>ap_copy_array</SAMP></A>,
        <A HREF="#ap_copy_array_hdr"><SAMP>ap_copy_array_hdr</SAMP></A>,
        <A HREF="#ap_make_array"><SAMP>ap_make_array</SAMP></A>,
        <A HREF="#ap_push_array"><SAMP>ap_push_array</SAMP></A>,
        <A HREF="#array_header"><SAMP>array_header</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_array_cat">
    ap_array_cat
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_array_cat(<A HREF="#array_header">array_header</A> *dst, const <A HREF="#array_header">array_header</A> *src);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_append_arrays"><SAMP>ap_append_arrays</SAMP></A>,
        <A HREF="#ap_copy_array"><SAMP>ap_copy_array</SAMP></A>,
        <A HREF="#ap_copy_array_hdr"><SAMP>ap_copy_array_hdr</SAMP></A>,
        <A HREF="#ap_make_array"><SAMP>ap_make_array</SAMP></A>,
        <A HREF="#ap_push_array"><SAMP>ap_push_array</SAMP></A>,
        <A HREF="#array_header"><SAMP>array_header</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_auth_name">
    ap_auth_name
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_auth_name(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_auth_type">
    ap_auth_type
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_auth_type(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_basic_http_header">
    ap_basic_http_header
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_basic_http_header(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bclose">
    ap_bclose
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bclose(<A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bcreate">
    ap_bcreate
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#BUFF">BUFF</A> *ap_bcreate(<A HREF="#pool">pool</A> *p, int flags);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bfilbuf">
    ap_bfilbuf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bfilbuf(<A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bfileno">
    ap_bfileno
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bfileno(<A HREF="#BUFF">BUFF</A> *fb, int direction);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bflsbuf">
    ap_bflsbuf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bflsbuf(int c, <A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bflush">
    ap_bflush
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bflush(<A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bgetopt">
    ap_bgetopt
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bgetopt(<A HREF="#BUFF">BUFF</A> *fb, int optname, void *optval);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bgets">
    ap_bgets
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bgets(char *s, int n, <A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bhalfduplex">
    ap_bhalfduplex
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_bhalfduplex(<A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_block_alarms">
    ap_block_alarms
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_block_alarms(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_blookc">
    ap_blookc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_blookc(char *buff, <A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bnonblock">
    ap_bnonblock
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bnonblock(<A HREF="#BUFF">BUFF</A> *fb, int direction);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bonerror">
    ap_bonerror
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_bonerror(<A HREF="#BUFF">BUFF</A> *fb, void (*error) (<A HREF="#BUFF">BUFF</A> *b, int, void *), void *data);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bprintf">
    ap_bprintf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bprintf(<A HREF="#BUFF">BUFF</A> *fb, const char *fmt, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bpushfd">
    ap_bpushfd
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_bpushfd(<A HREF="#BUFF">BUFF</A> *fb, int fd_in, int fd_out);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bputs">
    ap_bputs
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bputs(const char *x, <A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bread">
    ap_bread
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bread(<A HREF="#BUFF">BUFF</A> *fb, void *buf, int nbyte);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bsetflag">
    ap_bsetflag
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bsetflag(<A HREF="#BUFF">BUFF</A> *fb, int flag, int value);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bsetopt">
    ap_bsetopt
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bsetopt(<A HREF="#BUFF">BUFF</A> *fb, int optname, const void *optval);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bskiplf">
    ap_bskiplf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bskiplf(<A HREF="#BUFF">BUFF</A> *fb);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bvputs">
    ap_bvputs
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bvputs(<A HREF="#BUFF">BUFF</A> *fb, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bwrite">
    ap_bwrite
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_bwrite(<A HREF="#BUFF">BUFF</A> *fb, const void *buf, int nbyte);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bytes_in_free_blocks">
    ap_bytes_in_free_blocks
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
long ap_bytes_in_free_blocks(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_bytes_in_pool">
    ap_bytes_in_pool
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_call_exec">
    ap_call_exec
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_call_exec(<A HREF="#request_rec">request_rec</A> *r, char *argv0, char **env, int shellcmd);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_can_exec">
    ap_can_exec
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_can_exec(const struct stat *fstat);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_cfg_closefile">
    ap_cfg_closefile
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_cfg_closefile(<A HREF="#configfile_t">configfile_t</A> *fp);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_cfg_getc">
    ap_cfg_getc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_cfg_getc(<A HREF="#configfile_t">configfile_t</A> *cfp);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_cfg_getline">
    ap_cfg_getline
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_cfg_getline(char *buf, size_t bufsize, <A HREF="#configfile_t">configfile_t</A> *cfp);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_chdir_file">
    ap_chdir_file
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_chdir_file(const char *file);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_checkmask">
    ap_checkmask
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_checkmask(const char *data, const char *mask);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_check_access">
    ap_check_access
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_check_alarm">
    ap_check_alarm
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_check_alarm(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_check_auth">
    ap_check_auth
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_check_cmd_context">
    ap_check_cmd_context
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_check_cmd_context(<A HREF="#cmd_parms">cmd_parms</A> *cmd, unsigned forbidden);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_check_user_id">
    ap_check_user_id
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_child_exit_modules">
    ap_child_exit_modules
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_child_init_modules">
    ap_child_init_modules
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_child_terminate">
    ap_child_terminate
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_child_terminate(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_cleanup_for_exec">
    ap_cleanup_for_exec
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_cleanup_for_exec(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_clear_module_list">
    ap_clear_module_list
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_clear_module_list(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_clear_pool">
    ap_clear_pool
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_clear_table">
    ap_clear_table
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_clear_table(<A HREF="#table">table</A> *t);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_close_piped_log">
    ap_close_piped_log
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_close_piped_log(<A HREF="#piped_log">piped_log</A> *plp);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_open_piped_log"><SAMP>ap_open_piped_log</SAMP></A>,
        <A HREF="#piped_log"><SAMP>piped_log</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_construct_server">
    ap_construct_server
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_construct_server(<A HREF="#pool">pool</A> *p, const char *hostname, unsigned port, const <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_construct_url">
    ap_construct_url
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_construct_url(<A HREF="#pool">pool</A> *p, const char *uri, const <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_copy_array">
    ap_copy_array
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#array_header">array_header</A> *ap_copy_array(<A HREF="#pool">pool</A> *p, const <A HREF="#array_header">array_header</A> *src);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_append_arrays"><SAMP>ap_append_arrays</SAMP></A>,
        <A HREF="#ap_array_cat"><SAMP>ap_array_cat</SAMP></A>,
        <A HREF="#ap_copy_array_hdr"><SAMP>ap_copy_array_hdr</SAMP></A>,
        <A HREF="#ap_make_array"><SAMP>ap_make_array</SAMP></A>,
        <A HREF="#ap_push_array"><SAMP>ap_push_array</SAMP></A>,
        <A HREF="#array_header"><SAMP>array_header</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_copy_array_hdr">
    ap_copy_array_hdr
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#array_header">array_header</A> *ap_copy_array_hdr(<A HREF="#pool">pool</A> *p, const <A HREF="#array_header">array_header</A> *src);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_append_arrays"><SAMP>ap_append_arrays</SAMP></A>,
        <A HREF="#ap_array_cat"><SAMP>ap_array_cat</SAMP></A>,
        <A HREF="#ap_copy_array"><SAMP>ap_copy_array</SAMP></A>,
        <A HREF="#ap_make_array"><SAMP>ap_make_array</SAMP></A>,
        <A HREF="#ap_push_array"><SAMP>ap_push_array</SAMP></A>,
        <A HREF="#array_header"><SAMP>array_header</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_copy_table">
    ap_copy_table
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#table">table</A> *ap_copy_table(<A HREF="#pool">pool</A> *p, const <A HREF="#table">table</A> *t);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_core_reorder_directories">
    ap_core_reorder_directories
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_count_dirs">
    ap_count_dirs
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_count_dirs(const char *path);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_cpystrn">
    ap_cpystrn
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_cpystrn(char *buf, const char *str, size_t numbytes);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
  <P>
  Copies at most <SAMP>numbytes</SAMP> of <SAMP>str</SAMP> to <SAMP>buf</SAMP>.
  Differs from <SAMP>strncpy()</SAMP> in that <SAMP>buf</SAMP> is
  <EM>always</EM> null terminated, but is <EM>not</EM> null filled.
  Therefore, <SAMP>buf</SAMP> should always be at least
  <SAMP>numbytes&nbsp;+&nbsp;1</SAMP> bytes long.
  Returns a pointer to the terminating <SAMP>'\0</SAMP>'.
  </P>
  <HR>
  <H3>
   <A NAME="ap_create_environment">
    ap_create_environment
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char **ap_create_environment(<A HREF="#pool">pool</A> *p, <A HREF="#table">table</A> *t);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_create_mutex">
    ap_create_mutex
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
 <A HREF="#mutex">mutex</A> *ap_create_mutex(char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_acquire_mutex"><SAMP>ap_acquire_mutex</SAMP></A>,
        <A HREF="#ap_destroy_mutex"><SAMP>ap_destroy_mutex</SAMP></A>,
        <A HREF="#ap_open_mutex"><SAMP>ap_open_mutex</SAMP></A>,
        <A HREF="#mutex"><SAMP>mutex</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_create_per_dir_config">
    ap_create_per_dir_config
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void *ap_create_per_dir_config(<A HREF="#pool">pool</A> *p);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_create_request_config">
    ap_create_request_config
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_default_port_for_request">
    ap_default_port_for_request
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
unsigned short ap_default_port_for_request(const <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_default_port_for_scheme">
    ap_default_port_for_scheme
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
unsigned short ap_default_port_for_scheme(const char *scheme_str);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_default_type">
    ap_default_type
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_default_type(request_req *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_destroy_mutex">
    ap_destroy_mutex
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_destroy_mutex(<A HREF="#mutex">mutex</A> *mutex_id);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_acquire_mutex"><SAMP>ap_acquire_mutex</SAMP></A>,
        <A HREF="#ap_create_mutex"><SAMP>ap_create_mutex</SAMP></A>,
        <A HREF="#ap_open_mutex"><SAMP>ap_open_mutex</SAMP></A>,
        <A HREF="#mutex"><SAMP>mutex</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_destroy_pool">
    ap_destroy_pool
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_destroy_pool(<A HREF="#pool">pool</A> *p);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
  <P>
  This function will recursively destroy the specified
  <A HREF="#pool">pool</A> allocation area and any sub-pools of it,
  making any memory allocated to them available for use elsewhere.
  </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_destroy_sub_req">
    ap_destroy_sub_req
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_destroy_sub_req(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_die">
    ap_die
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_discard_request_body">
    ap_discard_request_body
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_discard_request_body(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_document_root">
    ap_document_root
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_document_root(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_each_byterange">
    ap_each_byterange
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_each_byterange(<A HREF="#request_rec">request_rec</A> *r, long *offset, long *length);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_error_log2stderr">
    ap_error_log2stderr
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_error_log2stderr(<A HREF="#server_rec">server_rec</A> *s);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_escape_html">
    ap_escape_html
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_escape_html(<A HREF="#pool">pool</A> *p, const char *s);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_escape_path">
    ap_escape_path
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_escape_path(<A HREF="#pool">pool</A> *p, const char *path, int partial);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_escape_path_segment">
    ap_escape_path_segment
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_escape_path_segment(<A HREF="#pool">pool</A> *p, const char *s);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_escape_quotes">
    ap_escape_quotes
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_escape_quotes(<A HREF="#pool">pool</A> *p, const char *str);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_escape_shell_cmd">
    ap_escape_shell_cmd
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_escape_shell_cmd(<A HREF="#pool">pool</A> *p, const char *s);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_exists_scoreboard_image">
    ap_exists_scoreboard_image
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_finalize_request_protocol">
    ap_finalize_request_protocol
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_finalize_sub_req_protocol">
    ap_finalize_sub_req_protocol
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_find_command">
    ap_find_command
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const <A HREF="#command_rec">command_rec</A> *ap_find_command(const char *name, const <A HREF="#command_rec">command_rec</A> *cmds);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_find_command_in_modules">
    ap_find_command_in_modules
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const <A HREF="#command_rec">command_rec</A> *ap_find_command_in_modules(const char *cmd_name, <A HREF="#module">module</A> **m);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_find_last_token">
    ap_find_last_token
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_find_last_token(<A HREF="#pool">pool</A> *p, const char *line, const char *tok);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_find_linked_module">
    ap_find_linked_module
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#module">module</A> *ap_find_linked_module(const char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_find_module_name">
    ap_find_module_name
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_find_module_name(<A HREF="#module">module</A> *m);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_find_path_info">
    ap_find_path_info
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_find_path_info(const char *uri, const char *path_info);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_find_pool">
    ap_find_pool
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_find_token">
    ap_find_token
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_find_token(<A HREF="#pool">pool</A> *p, const char *line, const char *tok);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_find_types">
    ap_find_types
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_fini_vhost_config">
    ap_fini_vhost_config
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_fnmatch">
    ap_fnmatch
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_fnmatch(const char *s1, const char *s2, int n);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_force_library_loading">
    ap_force_library_loading
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getparents">
    ap_getparents
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_getparents(char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getword">
    ap_getword
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_getword(<A HREF="#pool">pool</A> *p, const char **line, char stop);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getword_conf">
    ap_getword_conf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_getword_conf(<A HREF="#pool">pool</A> *p, const char **line);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getword_conf_nc">
    ap_getword_conf_nc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_getword_conf_nc(<A HREF="#pool">pool</A> *p, char **line);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getword_nc">
    ap_getword_nc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_getword_nc(<A HREF="#pool">pool</A> *p, char **line, char stop);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getword_nulls">
    ap_getword_nulls
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_getword_nulls(<A HREF="#pool">pool</A> *p, const char **line, char stop);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getword_nulls_nc">
    ap_getword_nulls_nc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_getword_nulls_nc(<A HREF="#pool">pool</A> *p, char **line, char stop);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getword_white">
    ap_getword_white
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_getword_white(<A HREF="#pool">pool</A> *p, const char **line);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_getword_white_nc">
    ap_getword_white_nc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_getword_white_nc(<A HREF="#pool">pool</A> *p, char **line);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_basic_auth_pw">
    ap_get_basic_auth_pw
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_get_basic_auth_pw(<A HREF="#request_rec">request_rec</A> *r, char **pw);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_client_block">
    ap_get_client_block
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
long ap_get_client_block(<A HREF="#request_rec">request_rec</A> *r, char *buffer, int bufsiz);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_gmtoff">
    ap_get_gmtoff
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
struct tm *ap_get_gmtoff(int *tz);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_local_host">
    ap_get_local_host
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_module_config">
    ap_get_module_config
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void *ap_get_module_config(void *conf_vector, <A HREF="#module">module</A> *m);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_remote_host">
    ap_get_remote_host
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_get_remote_host(<A HREF="#conn_rec">conn_rec</A> *conn, void *dir_config, int type);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_remote_logname">
    ap_get_remote_logname
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_get_remote_logname(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_server_built">
    ap_get_server_built
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_get_server_built(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
char *string;
string = ap_get_server_built();
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_get_server_name"><SAMP>ap_get_server_name</SAMP></A>,
        <A HREF="#ap_get_server_version"><SAMP>ap_get_server_version</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_get_server_name">
    ap_get_server_name
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_get_server_name(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
 char *string;
string = ap_get_server_name();
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_get_server_built"><SAMP>ap_get_server_built</SAMP></A>,
        <A HREF="#ap_get_server_version"><SAMP>ap_get_server_version</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_get_server_port">
    ap_get_server_port
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
unsigned ap_get_server_port(const *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_server_version">
    ap_get_server_version
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_get_server_version(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
 char *string;
string = ap_get_server_version();
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_get_server_built"><SAMP>ap_get_server_built</SAMP></A>,
        <A HREF="#ap_get_server_name"><SAMP>ap_get_server_name</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_get_time">
    ap_get_time
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_get_time(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_token">
    ap_get_token
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_get_token(<A HREF="#pool">pool</A> *p, char **accept_line, int accept_white);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_get_virthost_addr">
    ap_get_virthost_addr
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_gm_timestr_822">
    ap_gm_timestr_822
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_gm_timestr_822(<A HREF="#pool">pool</A> *p, time_t t);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_gname2id">
    ap_gname2id
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
gid_t ap_gname2id(const char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_handle_command">
    ap_handle_command
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_handle_command(<A HREF="#cmd_parms">cmd_parms</A> *parms, void *config, const char *l);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_hard_timeout">
    ap_hard_timeout
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_hard_timeout(char *reason, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_header_parse">
    ap_header_parse
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_ht_time">
    ap_ht_time
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_ht_time(<A HREF="#pool">pool</A> *p, time_t t, const char *fmt, int gmt);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_ind">
    ap_ind
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_ind(const char *str, char c);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_index_of_response">
    ap_index_of_response
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_index_of_response(int status);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_init_alloc">
    ap_init_alloc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_init_modules">
    ap_init_modules
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_init_vhost_config">
    ap_init_vhost_config
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_init_virtual_host">
    ap_init_virtual_host
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_init_virtual_host(<A HREF="#pool">pool</A> *p, const char *hostname, <A HREF="#server_rec">server_rec</A> *main_server, <A HREF="#server_rec">server_rec</A> **);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_internal_redirect">
    ap_internal_redirect
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_internal_redirect(const char *new_uri, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_internal_redirect_handler">
    ap_internal_redirect_handler
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_internal_redirect_handler(const char *new_uri, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_invoke_handler">
    ap_invoke_handler
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_is_directory">
    ap_is_directory
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_is_directory(const char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_is_fnmatch">
    ap_is_fnmatch
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_is_fnmatch(const char *str);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_is_initial_req">
    ap_is_initial_req
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_is_initial_req(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_is_matchexp">
    ap_is_matchexp
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_is_matchexp(const char *str);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_is_url">
    ap_is_url
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_is_url(const char *u);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_keepalive_timeout">
    ap_keepalive_timeout
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_kill_cleanup">
    ap_kill_cleanup
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_kill_cleanup(<A HREF="#pool">pool</A> *p, void *data, void (*plain_cleanup) (void *));
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_kill_cleanups_for_fd">
    ap_kill_cleanups_for_fd
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_kill_cleanups_for_fd(<A HREF="#pool">pool</A> *p, int fd);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_kill_cleanups_for_socket">
    ap_kill_cleanups_for_socket
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_kill_cleanups_for_socket(<A HREF="#pool">pool</A> *p, int sock);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_kill_timeout">
    ap_kill_timeout
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_kill_timeout(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_limit_section">
    ap_limit_section
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_limit_section(R (const char *szExp, const char *szFile, int nLine);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_log_error">
    ap_log_error
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_log_error(const char *file, int line, int level, const <A HREF="#server_rec">server_rec</A> *s, const char *fmt, ...) __attribute__((format(printf,5,6)));
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_log_error_old">
    ap_log_error_old
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_log_error_old(const char *err, <A HREF="#server_rec">server_rec</A> *s);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_log_pid">
    ap_log_pid
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_log_printf">
    ap_log_printf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_log_printf(const <A HREF="#server_rec">server_rec</A> *s, const char *fmt, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_log_reason">
    ap_log_reason
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_log_reason(const char *reason, const char *fname, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_log_transaction">
    ap_log_transaction
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_log_unixerr">
    ap_log_unixerr
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_log_unixerr(const char *routine, const char *file, const char *msg, <A HREF="#server_rec">server_rec</A> *s);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_make_array">
    ap_make_array
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#array_header">array_header</A> *ap_make_array(<A HREF="#pool">pool</A> *p, int nelts, int elt_size);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_append_arrays"><SAMP>ap_append_arrays</SAMP></A>,
        <A HREF="#ap_array_cat"><SAMP>ap_array_cat</SAMP></A>,
        <A HREF="#ap_copy_array"><SAMP>ap_copy_array</SAMP></A>,
        <A HREF="#ap_copy_array_hdr"><SAMP>ap_copy_array_hdr</SAMP></A>,
        <A HREF="#ap_push_array"><SAMP>ap_push_array</SAMP></A>,
        <A HREF="#array_header"><SAMP>array_header</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_make_dirstr">
    ap_make_dirstr
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_make_dirstr(<A HREF="#pool">pool</A> *a, const char *s, int n);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_make_dirstr_parent">
    ap_make_dirstr_parent
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_make_dirstr_parent(<A HREF="#pool">pool</A> *p, const char *s);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_make_dirstr_prefix">
    ap_make_dirstr_prefix
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_make_dirstr_prefix(char *d, const char *s, int n);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_make_full_path">
    ap_make_full_path
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_make_full_path(<A HREF="#pool">pool</A> *a, const char *dir, const char *f);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_make_sub_pool">
    ap_make_sub_pool
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#pool">pool</A> *ap_make_sub_pool(<A HREF="#pool">pool</A> *p);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
  <P>
  This function creates a new <A HREF="#pool">pool area</A>
  for memory allocation.  The
  new area is considered to be a &quot;child&quot; of the pool
  passed to the routine; this permits a hierarchy of related storage
  areas.  When a pool is destroyed (see
  <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>),
  any sub-pools it may have are also destroyed recursively.
  </P>
  <P>
  An example of when this hierarchy concept is useful can be found in the
  <A HREF="http://www.apache.org/docs/mod/mod_autoindex.html"
  >automatic directory listing module</A>.  Since the module can't
  tell in advance how many files it will have to list, nor how long the
  names will be, nor what other functions might need to allocate memory
  to process the request, it creates a sub-pool of the one associated
  with the request, does the <em>per</EM>-filename processing in
  it, and clears it for each new file.
  </P>
  <P>
  If the pointer passed to <SAMP>ap_make_sub_pool</SAMP> is <CODE>NULL</CODE>,
  a new top-level (<EM>i.e.</EM>, parentless) pool is created.  This
  is generally not recommended, however, since the only record of a
  pool's existence is the pointer returned - a simple logic error can
  result in pools being created and lost, along with any allocations
  made in them.  Most pools are created to deal with <EM>per</EM>-request
  processing, and hence should be sub-pools of the request's pool
  (<A HREF="#request_rec"><SAMP>r-&gt;pool</SAMP></A>) to ensure that
  they are properly cleaned up on request completion.
  </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_make_table">
    ap_make_table
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#table">table</A> *ap_make_table(<A HREF="#pool">pool</A> *p, int nelts);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_matches_request_vhost">
    ap_matches_request_vhost
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_matches_request_vhost(<A HREF="#request_rec">request_rec</A> *r, const char *host, unsigned port);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_md5">
    ap_md5
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_md5(<A HREF="#pool">pool</A> *a, unsigned char *string);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#AP_MD5_CTX"><SAMP>AP_MD5_CTX</SAMP></A>,
        <A HREF="#ap_MD5Final"><SAMP>ap_MD5Final</SAMP></A>,
        <A HREF="#ap_MD5Init"><SAMP>ap_MD5Init</SAMP></A>,
        <A HREF="#ap_MD5Update"><SAMP>ap_MD5Update</SAMP></A>,
        <A HREF="#ap_md5context"><SAMP>ap_md5context</SAMP></A>,
        <A HREF="#ap_md5contextTo64"><SAMP>ap_md5contextTo64</SAMP></A>,
        <A HREF="#ap_md5digest"><SAMP>ap_md5digest</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_md5context">
    ap_md5context
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_md5context(<A HREF="#pool">pool</A> *p, <A HREF="#AP_MD5_CTX">AP_MD5_CTX</A> *context);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#AP_MD5_CTX"><SAMP>AP_MD5_CTX</SAMP></A>,
        <A HREF="#ap_MD5Final"><SAMP>ap_MD5Final</SAMP></A>,
        <A HREF="#ap_MD5Init"><SAMP>ap_MD5Init</SAMP></A>,
        <A HREF="#ap_MD5Update"><SAMP>ap_MD5Update</SAMP></A>,
        <A HREF="#ap_md5"><SAMP>ap_md5</SAMP></A>,
        <A HREF="#ap_md5contextTo64"><SAMP>ap_md5contextTo64</SAMP></A>,
        <A HREF="#ap_md5digest"><SAMP>ap_md5digest</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_md5contextTo64">
    ap_md5contextTo64
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_md5digest">
    ap_md5digest
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_md5digest(<A HREF="#pool">pool</A> *p, FILE *infile);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#AP_MD5_CTX"><SAMP>AP_MD5_CTX</SAMP></A>,
        <A HREF="#ap_MD5Final"><SAMP>ap_MD5Final</SAMP></A>,
        <A HREF="#ap_MD5Init"><SAMP>ap_MD5Init</SAMP></A>,
        <A HREF="#ap_MD5Update"><SAMP>ap_MD5Update</SAMP></A>,
        <A HREF="#ap_md5"><SAMP>ap_md5</SAMP></A>,
        <A HREF="#ap_md5context"><SAMP>ap_md5context</SAMP></A>,
        <A HREF="#ap_md5contextTo64"><SAMP>ap_md5contextTo64</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_MD5Final">
    ap_MD5Final
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_MD5Final(unsigned char digest[16], <A HREF="#AP_MD5_CTX">AP_MD5_CTX</A> *context);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#AP_MD5_CTX"><SAMP>AP_MD5_CTX</SAMP></A>,
        <A HREF="#ap_MD5Init"><SAMP>ap_MD5Init</SAMP></A>,
        <A HREF="#ap_MD5Update"><SAMP>ap_MD5Update</SAMP></A>,
        <A HREF="#ap_md5"><SAMP>ap_md5</SAMP></A>,
        <A HREF="#ap_md5context"><SAMP>ap_md5context</SAMP></A>,
        <A HREF="#ap_md5contextTo64"><SAMP>ap_md5contextTo64</SAMP></A>,
        <A HREF="#ap_md5digest"><SAMP>ap_md5digest</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_MD5Init">
    ap_MD5Init
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_MD5Init(<A HREF="#AP_MD5_CTX">AP_MD5_CTX</A> *context);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#AP_MD5_CTX"><SAMP>AP_MD5_CTX</SAMP></A>,
        <A HREF="#ap_MD5Final"><SAMP>ap_MD5Final</SAMP></A>,
        <A HREF="#ap_MD5Update"><SAMP>ap_MD5Update</SAMP></A>,
        <A HREF="#ap_md5"><SAMP>ap_md5</SAMP></A>,
        <A HREF="#ap_md5context"><SAMP>ap_md5context</SAMP></A>,
        <A HREF="#ap_md5contextTo64"><SAMP>ap_md5contextTo64</SAMP></A>,
        <A HREF="#ap_md5digest"><SAMP>ap_md5digest</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_MD5Update">
    ap_MD5Update
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_MD5Update(<A HREF="#AP_MD5_CTX">AP_MD5_CTX</A> *context, const unsigned char *input, unsigned int inputLen);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#AP_MD5_CTX"><SAMP>AP_MD5_CTX</SAMP></A>,
        <A HREF="#ap_MD5Final"><SAMP>ap_MD5Final</SAMP></A>,
        <A HREF="#ap_MD5Init"><SAMP>ap_MD5Init</SAMP></A>,
        <A HREF="#ap_md5"><SAMP>ap_md5</SAMP></A>,
        <A HREF="#ap_md5context"><SAMP>ap_md5context</SAMP></A>,
        <A HREF="#ap_md5contextTo64"><SAMP>ap_md5contextTo64</SAMP></A>,
        <A HREF="#ap_md5digest"><SAMP>ap_md5digest</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_meets_conditions">
    ap_meets_conditions
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_meets_conditions(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_merge_per_dir_configs">
    ap_merge_per_dir_configs
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_no2slash">
    ap_no2slash
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_no2slash(char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_note_auth_failure">
    ap_note_auth_failure
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_note_auth_failure(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_note_basic_auth_failure">
    ap_note_basic_auth_failure
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_note_basic_auth_failure(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_note_cleanups_for_fd">
    ap_note_cleanups_for_fd
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_note_cleanups_for_fd(<A HREF="#pool">pool</A> *p, int fd);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_note_cleanups_for_file">
    ap_note_cleanups_for_file
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_note_cleanups_for_file(<A HREF="#pool">pool</A> *p, FILE *f);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_note_cleanups_for_socket">
    ap_note_cleanups_for_socket
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_note_cleanups_for_socket(<A HREF="#pool">pool</A> *p, int sock);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_note_digest_auth_failure">
    ap_note_digest_auth_failure
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_note_digest_auth_failure(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_note_subprocess">
    ap_note_subprocess
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_note_subprocess(<A HREF="#pool">pool</A> *p, int pid, enum <A HREF="#kill_conditions">kill_conditions</A> how);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_null_cleanup">
    ap_null_cleanup
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_null_cleanup(void *data);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_open_logs">
    ap_open_logs
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_open_mutex">
    ap_open_mutex
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#mutex">mutex</A> *ap_open_mutex(char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_acquire_mutex"><SAMP>ap_acquire_mutex</SAMP></A>,
        <A HREF="#ap_create_mutex"><SAMP>ap_create_mutex</SAMP></A>,
        <A HREF="#ap_destroy_mutex"><SAMP>ap_destroy_mutex</SAMP></A>,
        <A HREF="#mutex"><SAMP>mutex</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_open_piped_log">
    ap_open_piped_log
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#piped_log">piped_log</A> *ap_open_piped_log(<A HREF="#pool">pool</A> *p, const char *program);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_close_piped_log"><SAMP>ap_close_piped_log</SAMP></A>,
        <A HREF="#piped_log"><SAMP>piped_log</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_os_canonical_filename">
    ap_os_canonical_filename
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_os_canonical_filename(<A HREF="#pool">pool</A> *p, const char *file);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_os_is_path_absolute">
    ap_os_is_path_absolute
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_overlay_tables">
    ap_overlay_tables
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#table">table</A> *ap_overlay_tables(<A HREF="#pool">pool</A> *p, const <A HREF="#table">table</A> *overlay, const <A HREF="#table">table</A> *base);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_palloc">
    ap_palloc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void *ap_palloc(struct <A HREF="#pool">pool</A> *p, int nbytes);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_parseHTTPdate">
    ap_parseHTTPdate
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
time_t ap_parseHTTPdate(const char *date);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_parse_hostinfo_components">
    ap_parse_hostinfo_components
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_parse_hostinfo_components(<A HREF="#pool">pool</A> *p, const char *hostinfo, <A HREF="#uri_components">uri_components</A> *uptr);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_parse_htaccess">
    ap_parse_htaccess
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_parse_uri">
    ap_parse_uri
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_parse_uri(<A HREF="#request_rec">request_rec</A> *r, const char *uri);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_parse_uri_components">
    ap_parse_uri_components
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_parse_uri_components(<A HREF="#pool">pool</A> *p, const char *uri, <A HREF="#uri_components">uri_components</A> *uptr);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_parse_vhost_addrs">
    ap_parse_vhost_addrs
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_pcalloc">
    ap_pcalloc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void *ap_pcalloc(struct <A HREF="#pool">pool</A> *p, int nbytes);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pcfg_openfile">
    ap_pcfg_openfile
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#configfile_t">configfile_t</A> *ap_pcfg_openfile(<A HREF="#pool">pool</A> *p, const char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_pcfg_open_custom">
    ap_pcfg_open_custom
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#configfile_t">configfile_t</A> *ap_pcfg_open_custom(<A HREF="#pool">pool</A> *p, const char *descr, void *param, int(*getc_func)(void*), void *(*gets_func) (void *buf, size_t bufsiz, void *param),int (*close_func) (void *a));
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_pclosedir">
    ap_pclosedir
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_pclosedir(<A HREF="#pool">pool</A> *p, DIR * d);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pclosef">
    ap_pclosef
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_pclosef(struct <A HREF="#pool">pool</A> *p, int fd);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pclosesocket">
    ap_pclosesocket
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_pclosesocket(<A HREF="#pool">pool</A> *p, int sock);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pduphostent">
    ap_pduphostent
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
struct hostent *ap_pduphostent(<A HREF="#pool">pool</A> *p, struct hostent *hp);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pfclose">
    ap_pfclose
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_pfclose(struct <A HREF="#pool">pool</A> *p, FILE *f);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pfdopen">
    ap_pfdopen
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
FILE *ap_pfdopen(struct <A HREF="#pool">pool</A> *p, int fd, const char *fmode);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pfopen">
    ap_pfopen
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
FILE *ap_pfopen(struct <A HREF="#pool">pool</A> *p, const char *name, const char *fmode);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pgethostbyname">
    ap_pgethostbyname
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
struct hostent *ap_pgethostbyname(<A HREF="#pool">pool</A> *p, const char *hostname);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pool_is_ancestor">
    ap_pool_is_ancestor
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pool_join">
    ap_pool_join
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_popendir">
    ap_popendir
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
DIR *ap_popendir(<A HREF="#pool">pool</A> *p, const char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_popenf">
    ap_popenf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_popenf(struct <A HREF="#pool">pool</A> *p, const char *name, int flg, int mode);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pregcomp">
    ap_pregcomp
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#regex_t">regex_t</A> *ap_pregcomp(<A HREF="#pool">pool</A> *p, const char *pattern, int cflags);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pregfree">
    ap_pregfree
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_pregfree(<A HREF="#pool">pool</A> *p, <A HREF="#regex_t">regex_t</A> *reg);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pregsub">
    ap_pregsub
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_pregsub(<A HREF="#pool">pool</A> *p, const char *input, const char *source, size_t nmatch, <A HREF="#regmatch_t">regmatch_t</A> pmatch[]);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_process_request">
    ap_process_request
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_process_resource_config">
    ap_process_resource_config
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_psignature">
    ap_psignature
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_psignature(const char *prefix, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_psocket">
    ap_psocket
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_psocket(<A HREF="#pool">pool</A> *p, int i, int j, int k);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_psprintf">
    ap_psprintf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_psprintf(struct <A HREF="#pool">pool</A> *p, const char *fmt, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_pstrcat">
    ap_pstrcat
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_pstrcat(struct <A HREF="#pool">pool</A> *p, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pstrdup">
    ap_pstrdup
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_pstrdup(struct <A HREF="#pool">pool</A> *p, const char *s);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pstrndup">
    ap_pstrndup
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_pstrndup(struct <A HREF="#pool">pool</A> *p, const char *s, int n);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#pool"><SAMP>pool</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_push_array">
    ap_push_array
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void *ap_push_array(<A HREF="#array_header">array_header</A> *a);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_append_arrays"><SAMP>ap_append_arrays</SAMP></A>,
        <A HREF="#ap_array_cat"><SAMP>ap_array_cat</SAMP></A>,
        <A HREF="#ap_copy_array"><SAMP>ap_copy_array</SAMP></A>,
        <A HREF="#ap_copy_array_hdr"><SAMP>ap_copy_array_hdr</SAMP></A>,
        <A HREF="#ap_make_array"><SAMP>ap_make_array</SAMP></A>,
        <A HREF="#array_header"><SAMP>array_header</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_pvsprintf">
    ap_pvsprintf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_pvsprintf(struct <A HREF="#pool">pool</A> *p, const char *fmt, va_list);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rationalize_mtime">
    ap_rationalize_mtime
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
time_t ap_rationalize_mtime(<A HREF="#request_rec">request_rec</A> *r, time_t mtime);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_read_config">
    ap_read_config
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_read_request">
    ap_read_request
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_register_cleanup">
    ap_register_cleanup
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_register_cleanup(<A HREF="#pool">pool</A> *p, void *data, void (*plain_cleanup) (void *), void (*child_cleanup) (void *));
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_register_other_child">
    ap_register_other_child
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_register_other_child(int pid, void (*maintenance) (int reason, void *data, int status), void *data, int write_fd);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_remove_module">
    ap_remove_module
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_remove_module(<A HREF="#module">module</A> *m);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_requires">
    ap_requires
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#array_header">array_header</A> *ap_requires(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_reset_timeout">
    ap_reset_timeout
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_reset_timeout(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_response_code_string">
    ap_response_code_string
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rfc1413">
    ap_rfc1413
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rflush">
    ap_rflush
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_rflush(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rind">
    ap_rind
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_rind(const char *str, char c);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rprintf">
    ap_rprintf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_rprintf(<A HREF="#request_rec">request_rec</A> *r, const char *fmt, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rputc">
    ap_rputc
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_rputc(int c, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rputs">
    ap_rputs
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_rputs(const char *str, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_run_cleanup">
    ap_run_cleanup
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_run_cleanup(<A HREF="#pool">pool</A> *p, void *data, void (*cleanup) (void *));
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_run_fixups">
    ap_run_fixups
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_run_post_read_request">
    ap_run_post_read_request
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_run_sub_req">
    ap_run_sub_req
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_run_sub_req(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rvputs">
    ap_rvputs
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_rvputs(<A HREF="#request_rec">request_rec</A> *r, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_rwrite">
    ap_rwrite
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_rwrite(const void *buf, int nbyte, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_satisfies">
    ap_satisfies
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_satisfies(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_scan_script_header_err">
    ap_scan_script_header_err
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_scan_script_header_err(<A HREF="#request_rec">request_rec</A> *r, FILE *f, char *buffer);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_scan_script_header_err_buff">
    ap_scan_script_header_err_buff
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_scan_script_header_err_buff(<A HREF="#request_rec">request_rec</A> *r, <A HREF="#BUFF">BUFF</A> *f, char *buffer);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_error_response">
    ap_send_error_response
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_fb">
    ap_send_fb
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
long ap_send_fb(<A HREF="#BUFF">BUFF</A> *f, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_fb_length">
    ap_send_fb_length
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
long ap_send_fb_length(<A HREF="#BUFF">BUFF</A> *f, <A HREF="#request_rec">request_rec</A> *r, long length);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_fd">
    ap_send_fd
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
long ap_send_fd(FILE *f, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_fd_length">
    ap_send_fd_length
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
long ap_send_fd_length(FILE *f, <A HREF="#request_rec">request_rec</A> *r, long length);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_header_field">
    ap_send_header_field
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_send_header_field(<A HREF="#request_rec">request_rec</A> *r, const char *fieldname, const char *fieldval);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_http_header">
    ap_send_http_header
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_send_http_header(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_http_options">
    ap_send_http_options
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_http_trace">
    ap_send_http_trace
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_mmap">
    ap_send_mmap
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
size_t ap_send_mmap(void *mm, <A HREF="#request_rec">request_rec</A> *r, size_t offset, size_t length);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_send_size">
    ap_send_size
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_send_size(size_t size, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_server_root_relative">
    ap_server_root_relative
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_server_root_relative(<A HREF="#pool">pool</A> *p, char *fname);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_setup_client_block">
    ap_setup_client_block
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_setup_client_block(<A HREF="#request_rec">request_rec</A> *r, int read_policy);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_setup_prelinked_modules">
    ap_setup_prelinked_modules
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_byterange">
    ap_set_byterange
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_set_byterange(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_callback_and_alarm">
    ap_set_callback_and_alarm
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_content_length">
    ap_set_content_length
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_set_content_length(<A HREF="#request_rec">request_rec</A> *r, long length);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_etag">
    ap_set_etag
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_set_etag(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_file_slot">
    ap_set_file_slot
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_set_file_slot(<A HREF="#cmd_parms">cmd_parms</A> *cmd, char *s1, char *s2);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_flag_slot">
    ap_set_flag_slot
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_set_flag_slot(<A HREF="#cmd_parms">cmd_parms</A> *cmd, char *s1, int flag);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_keepalive">
    ap_set_keepalive
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_set_keepalive(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_last_modified">
    ap_set_last_modified
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_set_last_modified(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_module_config">
    ap_set_module_config
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_set_module_config(void *conf_vector, <A HREF="#module">module</A> *m, void *val);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_name_virtual_host">
    ap_set_name_virtual_host
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_string_slot">
    ap_set_string_slot
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_set_string_slot(<A HREF="#cmd_parms">cmd_parms</A> *cmd, char *s1, char *s2);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_string_slot_lower">
    ap_set_string_slot_lower
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_set_string_slot_lower(<A HREF="#cmd_parms">cmd_parms</A> *cmd, char *s1, char *s2);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_set_sub_req_protocol">
    ap_set_sub_req_protocol
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_should_client_block">
    ap_should_client_block
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_should_client_block(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_show_directives">
    ap_show_directives
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_show_modules">
    ap_show_modules
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_snprintf">
    ap_snprintf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_snprintf(char *buf, size_t nbytes, const char *fmt, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_soft_timeout">
    ap_soft_timeout
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_soft_timeout(char *str, <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_some_auth_required">
    ap_some_auth_required
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_some_auth_required(<A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_spawn_child_err">
    ap_spawn_child_err
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_spawn_child_err(<A HREF="#pool">pool</A> *p, int (*)(void *), void *, enum <A HREF="#kill_conditions">kill_conditions</A>, FILE **pipe_in, FILE **pipe_out, FILE **pipe_err);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_spawn_child_err_buff">
    ap_spawn_child_err_buff
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_spawn_child_err_buff(<A HREF="#pool">pool</A> *p, int (*)(void *), void *, enum <A HREF="#kill_conditions">kill_conditions</A>, <A HREF="#BUFF">BUFF</A> **pipe_in, <A HREF="#BUFF">BUFF</A> **pipe_out, <A HREF="#BUFF">BUFF</A> **pipe_err);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_srm_command_loop">
    ap_srm_command_loop
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char *ap_srm_command_loop(<A HREF="#cmd_parms">cmd_parms</A> *parms, void *config);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_start_restart">
    ap_start_restart
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_start_shutdown">
    ap_start_shutdown
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_strcasecmp_match">
    ap_strcasecmp_match
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_strcasecmp_match(const char *str, const char *exp);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_strcmp_match">
    ap_strcmp_match
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_strcmp_match(const char *str, const char *exp);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_str_tolower">
    ap_str_tolower
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_str_tolower(char *str);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_sub_req_lookup_file">
    ap_sub_req_lookup_file
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#request_rec">request_rec</A> *ap_sub_req_lookup_file(const char *new_file, const <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_sub_req_lookup_uri">
    ap_sub_req_lookup_uri
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#request_rec">request_rec</A> *ap_sub_req_lookup_uri(const char *new_file, const <A HREF="#request_rec">request_rec</A> *r);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_sync_scoreboard_image">
    ap_sync_scoreboard_image
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_add">
    ap_table_add
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_table_add(<A HREF="#table">table</A> *t, const char *key, const char *val);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_addn">
    ap_table_addn
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_table_addn(<A HREF="#table">table</A> *t, const char *key, const char *val);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_do">
    ap_table_do
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_table_do(int (*comp) (void *d, const char *key, const char *val), void *rec, const <A HREF="#table">table</A> *t, ...);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_get">
    ap_table_get
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_merge">
    ap_table_merge
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_mergen">
    ap_table_mergen
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_set">
    ap_table_set
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_setn">
    ap_table_setn
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_table_unset">
    ap_table_unset
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#table"><SAMP>table</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_time_process_request">
    ap_time_process_request
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_tm2sec">
    ap_tm2sec
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
time_t ap_tm2sec(const struct tm *t);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_translate_name">
    ap_translate_name
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_uname2id">
    ap_uname2id
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
uid_t ap_uname2id(const char *name);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_unblock_alarms">
    ap_unblock_alarms
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_unblock_alarms(void);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_unescape_url">
    ap_unescape_url
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_unescape_url(char *url);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_unparse_uri_components">
    ap_unparse_uri_components
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_unparse_uri_components(<A HREF="#pool">pool</A> *p, const <A HREF="#uri_components">uri_components</A> *uptr, unsigned flags);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_unregister_other_child">
    ap_unregister_other_child
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
void ap_unregister_other_child(void *data);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_update_child_status">
    ap_update_child_status
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_update_mtime">
    ap_update_mtime
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
time_t ap_update_mtime(<A HREF="#request_rec">request_rec</A> *r, time_t dependency_mtime);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_update_vhost_from_headers">
    ap_update_vhost_from_headers
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_update_vhost_given_ip">
    ap_update_vhost_given_ip
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_util_init">
    ap_util_init
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_util_uri_init">
    ap_util_uri_init
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_uudecode">
    ap_uudecode
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_uudecode(<A HREF="#pool">pool</A> *p, const char *str);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_vbprintf">
    ap_vbprintf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_vbprintf(<A HREF="#BUFF">BUFF</A> *fb, const char *fmt, va_list vlist);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_vformatter">
    ap_vformatter
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_vformatter(int (*flush_func)(<A HREF="#ap_vformatter_buff">ap_vformatter_buff</A> *f), <A HREF="#ap_vformatter_buff">ap_vformatter_buff</A> *b, const char *fmt, va_list ap);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_vsnprintf">
    ap_vsnprintf
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_vsnprintf(char *buf, size_t numbytes, const char *fmt, va_list ap);
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="is_HTTP_CLIENT_ERROR">
    is_HTTP_CLIENT_ERROR
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define is_HTTP_CLIENT_ERROR(x) (((x) &gt;= 400) &amp;&amp; ((x) &lt; 500))
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#is_HTTP_ERROR"><SAMP>is_HTTP_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_INFO"><SAMP>is_HTTP_INFO</SAMP></A>,
        <A HREF="#is_HTTP_REDIRECT"><SAMP>is_HTTP_REDIRECT</SAMP></A>,
        <A HREF="#is_HTTP_SERVER_ERROR"><SAMP>is_HTTP_SERVER_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_SUCCESS"><SAMP>is_HTTP_SUCCESS</SAMP></A>,
        <A HREF="#status_drops_connection"><SAMP>status_drops_connection</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="is_HTTP_ERROR">
    is_HTTP_ERROR
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define is_HTTP_ERROR(x) (((x) &gt;= 400) &amp;&amp; ((x) &lt; 600))
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#is_HTTP_CLIENT_ERROR"><SAMP>is_HTTP_CLIENT_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_INFO"><SAMP>is_HTTP_INFO</SAMP></A>,
        <A HREF="#is_HTTP_REDIRECT"><SAMP>is_HTTP_REDIRECT</SAMP></A>,
        <A HREF="#is_HTTP_SERVER_ERROR"><SAMP>is_HTTP_SERVER_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_SUCCESS"><SAMP>is_HTTP_SUCCESS</SAMP></A>,
        <A HREF="#status_drops_connection"><SAMP>status_drops_connection</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="is_HTTP_INFO">
    is_HTTP_INFO
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define is_HTTP_INFO(x) (((x) &gt;= 100) &amp;&amp; ((x) &lt; 200))
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#is_HTTP_CLIENT_ERROR"><SAMP>is_HTTP_CLIENT_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_ERROR"><SAMP>is_HTTP_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_REDIRECT"><SAMP>is_HTTP_REDIRECT</SAMP></A>,
        <A HREF="#is_HTTP_SERVER_ERROR"><SAMP>is_HTTP_SERVER_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_SUCCESS"><SAMP>is_HTTP_SUCCESS</SAMP></A>,
        <A HREF="#status_drops_connection"><SAMP>status_drops_connection</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="is_HTTP_REDIRECT">
    is_HTTP_REDIRECT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define is_HTTP_REDIRECT(x) (((x) &gt;= 300) &amp;&amp; ((x) &lt; 400))
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#is_HTTP_CLIENT_ERROR"><SAMP>is_HTTP_CLIENT_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_ERROR"><SAMP>is_HTTP_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_INFO"><SAMP>is_HTTP_INFO</SAMP></A>,
        <A HREF="#is_HTTP_SERVER_ERROR"><SAMP>is_HTTP_SERVER_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_SUCCESS"><SAMP>is_HTTP_SUCCESS</SAMP></A>,
        <A HREF="#status_drops_connection"><SAMP>status_drops_connection</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="is_HTTP_SERVER_ERROR">
    is_HTTP_SERVER_ERROR
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define is_HTTP_SERVER_ERROR(x) (((x) &gt;= 500) &amp;&amp; ((x) &lt; 600))
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#is_HTTP_CLIENT_ERROR"><SAMP>is_HTTP_CLIENT_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_ERROR"><SAMP>is_HTTP_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_INFO"><SAMP>is_HTTP_INFO</SAMP></A>,
        <A HREF="#is_HTTP_REDIRECT"><SAMP>is_HTTP_REDIRECT</SAMP></A>,
        <A HREF="#is_HTTP_SUCCESS"><SAMP>is_HTTP_SUCCESS</SAMP></A>,
        <A HREF="#status_drops_connection"><SAMP>status_drops_connection</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="is_HTTP_SUCCESS">
    is_HTTP_SUCCESS
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define is_HTTP_SUCCESS(x) (((x) &gt;= 200) &amp;&amp; ((x) &lt; 300))
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#is_HTTP_CLIENT_ERROR"><SAMP>is_HTTP_CLIENT_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_ERROR"><SAMP>is_HTTP_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_INFO"><SAMP>is_HTTP_INFO</SAMP></A>,
        <A HREF="#is_HTTP_REDIRECT"><SAMP>is_HTTP_REDIRECT</SAMP></A>,
        <A HREF="#is_HTTP_SERVER_ERROR"><SAMP>is_HTTP_SERVER_ERROR</SAMP></A>,
        <A HREF="#status_drops_connection"><SAMP>status_drops_connection</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="status_drops_connection">
    status_drops_connection
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define status_drops_connection(x) (((x) == <A HREF="#HTTP_BAD_REQUEST">HTTP_BAD_REQUEST</A>)           &#124;&#124;
                                    ((x) == <A HREF="#HTTP_REQUEST_TIME_OUT">HTTP_REQUEST_TIME_OUT</A>)      &#124;&#124;
                                    ((x) == <A HREF="#HTTP_LENGTH_REQUIRED">HTTP_LENGTH_REQUIRED</A>)       &#124;&#124;
                                    ((x) == <A HREF="#HTTP_REQUEST_ENTITY_TOO_LARGE">HTTP_REQUEST_ENTITY_TOO_LARGE</A>) &#124;&#124;
                                    ((x) == <A HREF="#HTTP_REQUEST_URI_TOO_LARGE">HTTP_REQUEST_URI_TOO_LARGE</A>) &#124;&#124;
                                    ((x) == <A HREF="#HTTP_INTERNAL_SERVER_ERROR">HTTP_INTERNAL_SERVER_ERROR</A>) &#124;&#124;
                                    ((x) == <A HREF="#HTTP_SERVICE_UNAVAILABLE">HTTP_SERVICE_UNAVAILABLE</A>) &#124;&#124;
                                    ((x) == <A HREF="#HTTP_NOT_IMPLEMENTED">HTTP_NOT_IMPLEMENTED</A>))
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#is_HTTP_CLIENT_ERROR"><SAMP>is_HTTP_CLIENT_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_ERROR"><SAMP>is_HTTP_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_INFO"><SAMP>is_HTTP_INFO</SAMP></A>,
        <A HREF="#is_HTTP_REDIRECT"><SAMP>is_HTTP_REDIRECT</SAMP></A>,
        <A HREF="#is_HTTP_SERVER_ERROR"><SAMP>is_HTTP_SERVER_ERROR</SAMP></A>,
        <A HREF="#is_HTTP_SUCCESS"><SAMP>is_HTTP_SUCCESS</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H2>
   <A NAME="Structures">
    Data Structure Definitions
   </A>
  </H2>
  <HR>
  <H3>
   <A NAME="AP_MD5_CTX">
    AP_MD5_CTX
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
This is an opaque structure; you don't need to access any of its elements.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
AP_MD5_CTX <EM>identifier</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_MD5Final"><SAMP>ap_MD5Final</SAMP></A>,
        <A HREF="#ap_MD5Init"><SAMP>ap_MD5Init</SAMP></A>,
        <A HREF="#ap_MD5Update"><SAMP>ap_MD5Update</SAMP></A>,
        <A HREF="#ap_md5"><SAMP>ap_md5</SAMP></A>,
        <A HREF="#ap_md5context"><SAMP>ap_md5context</SAMP></A>,
        <A HREF="#ap_md5contextTo64"><SAMP>ap_md5contextTo64</SAMP></A>,
        <A HREF="#ap_md5digest"><SAMP>ap_md5digest</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_vformatter_buff">
    ap_vformatter_buff
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct {
    char *curpos;
    char *endpos;
} ap_vformatter_buff;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="array_header">
    array_header
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
    <A HREF="#pool">pool</A> *<A HREF="#pool">pool</A>; 
    int elt_size; 
    int nelts; 
    int nalloc; 
    char *elts; 
} array_header; 
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_append_arrays"><SAMP>ap_append_arrays</SAMP></A>,
        <A HREF="#ap_array_cat"><SAMP>ap_array_cat</SAMP></A>,
        <A HREF="#ap_copy_array"><SAMP>ap_copy_array</SAMP></A>,
        <A HREF="#ap_copy_array_hdr"><SAMP>ap_copy_array_hdr</SAMP></A>,
        <A HREF="#ap_make_array"><SAMP>ap_make_array</SAMP></A>,
        <A HREF="#ap_push_array"><SAMP>ap_push_array</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="BUFF">
    BUFF
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct buff_struct BUFF; 
struct buff_struct { 
    int flags; 
    unsigned char *inptr; 
    int incnt; 
    int outchunk; 
    int outcnt; 
    unsigned char *inbase; 
    unsigned char *outbase; 
    int bufsiz; 
    void (*error) (BUFF *fb, int op, void *data); 
    void *error_data; 
    long int bytes_sent; 
    <A HREF="#pool">pool</A> *<A HREF="#pool">pool</A>; 
    int fd; 
    int fd_in; 
    void *t_handle; 
#ifdef B_SFIO 
    Sfio_t *sf_in; 
    Sfio_t *sf_out; 
#endif 
};
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="cmd_parms">
    cmd_parms
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
    void *info; 
    int override; 
    int limited; 
    <A HREF="#configfile_t">configfile_t</A> *config_file; 
    <A HREF="#pool">pool</A> *<A HREF="#pool">pool</A>; 
    struct <A HREF="#pool">pool</A> *temp_pool; 
    <A HREF="#server_rec">server_rec</A> *server; 
    char *path; 
    const <A HREF="#command_rec">command_rec</A> *cmd; 
    const char *end_token; 
} cmd_parms;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="command_rec">
    command_rec
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct command_rec {
    const char *name;
    const char *(*func) ();
    void *cmd_data;
    int req_override;
    enum <A HREF="#cmd_how">cmd_how</A> args_how;
    const char *errmsg;
} command_rec;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="configfile_t">
    configfile_t
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
    int (*getch) (void *param); 
    void *(*getstr) (void *buf, size_t bufsiz, void *param); 
    int (*close) (void *param); 
    void *param; 
    const char *name; 
    unsigned line_number; 
} configfile_t;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="conn_rec">
    conn_rec
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct conn_rec conn_rec; 
struct conn_rec { 
    <A HREF="#pool">pool</A> *<A HREF="#pool">pool</A>; 
    <A HREF="#server_rec">server_rec</A> *server; 
    <A HREF="#server_rec">server_rec</A> *base_server; 
    void *vhost_lookup_data; 
    int child_num; 
    <A HREF="#BUFF">BUFF</A> *client; 
    struct sockaddr_in local_addr; 
    struct sockaddr_in remote_addr; 
    char *remote_ip; 
    char *remote_host; 
    char *remote_logname; 
    char *user; 
    char *<A HREF="#ap_auth_type">ap_auth_type</A>; 
    unsigned aborted:1; 
    signed int keepalive:2; 
    unsigned keptalive:1; 
    signed int double_reverse:2; 
    int keepalives; 
};
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="global_score">
    global_score
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
    int exit_generation; 
} global_score;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="module">
    module
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct module_struct { 
    int version; 
    int module_index; 
    const char *name; 
    void *dynamic_load_handle; 
    struct module_struct *next; 
#ifdef ULTRIX_BRAIN_DEATH 
    void (*init) (); 
    void *(*create_dir_config) (); 
    void *(*merge_dir_config) (); 
    void *(*create_server_config) (); 
    void *(*merge_server_config) (); 
#else 
    void (*init) (<A HREF="#server_rec">server_rec</A> *s, <A HREF="#pool">pool</A> *p); 
    void *(*create_dir_config) (<A HREF="#pool">pool</A> *p, char *dir); 
    void *(*merge_dir_config) (<A HREF="#pool">pool</A> *p, void *base_conf, void *new_conf); 
    void *(*create_server_config) (<A HREF="#pool">pool</A> *p, <A HREF="#server_rec">server_rec</A> *s); 
    void *(*merge_server_config) (<A HREF="#pool">pool</A> *p, void *base_conf, void *new_conf); 
#endif 
    const <A HREF="#command_rec">command_rec</A> *cmds; 
    const handler_rec *handlers; 
    int (*translate_handler) (<A HREF="#request_rec">request_rec</A> *r); 
    int (*<A HREF="#ap_check_user_id">ap_check_user_id</A>) (<A HREF="#request_rec">request_rec</A> *r); 
    int (*auth_checker) (<A HREF="#request_rec">request_rec</A> *r); 
    int (*access_checker) (<A HREF="#request_rec">request_rec</A> *r); 
    int (*type_checker) (<A HREF="#request_rec">request_rec</A> *r); 
    int (*fixer_upper) (<A HREF="#request_rec">request_rec</A> *r); 
    int (*logger) (<A HREF="#request_rec">request_rec</A> *r); 
    int (*header_parser) (<A HREF="#request_rec">request_rec</A> *r); 
#ifdef ULTRIX_BRAIN_DEATH 
    void (*child_init) (); 
    void (*child_exit) (); 
#else 
    void (*child_init) (<A HREF="#server_rec">server_rec</A> *s, <A HREF="#pool">pool</A> *p); 
    void (*child_exit) (<A HREF="#server_rec">server_rec</A> *s, <A HREF="#pool">pool</A> *p); 
#endif 
    int (*post_read_request) (<A HREF="#request_rec">request_rec</A> *)r; 
} module; 
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
module *mpointer; 
   <EM>or</EM> 
module action_module = 
{ 
    STANDARD_MODULE_STUFF, 
    NULL,                       /* initializer */ 
    create_action_dir_config,   /* dir config creater */ 
    merge_action_dir_configs,   /* dir merger --- default is to override */ 
    NULL,                       /* server config */ 
    NULL,                       /* merge server config */ 
    action_cmds,                /* command <A HREF="#table">table</A> */ 
    action_handlers,            /* handlers */ 
    NULL,                       /* filename translation */ 
    NULL,                       /* check_user_id */ 
    NULL,                       /* check auth */ 
    NULL,                       /* check access */ 
    NULL,                       /* type_checker */ 
    NULL,                       /* fixups */ 
    NULL,                       /* logger */ 
    NULL,                       /* header parser */ 
    NULL,                       /* child_init */ 
    NULL,                       /* child_exit */ 
    NULL                        /* post read-request */ 
}; 
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_add_module"><SAMP>ap_add_module</SAMP></A>,
        <A HREF="#ap_add_named_module"><SAMP>ap_add_named_module</SAMP></A>,
        <A HREF="#core_module"><SAMP>core_module</SAMP></A>,
        <A HREF="#top_module"><SAMP>top_module</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="mutex">
    mutex
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
This is an opaque structure; you don't need to access any of its elements.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
mutex <EM>identifier</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="parent_score">
    parent_score
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
    pid_t pid; 
#ifdef OPTIMIZE_TIMEOUTS 
    time_t last_rtime; 
    <A HREF="#vtime_t">vtime_t</A> last_vtime; 
#endif 
} parent_score;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="piped_log">
    piped_log
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct piped_log { 
    <A HREF="#pool">pool</A> *p; 
#ifndef NO_RELIABLE_PIPED_LOGS 
    char *program; 
    int pid; 
    int fds[2]; 
#else 
    FILE *write_f; 
#endif 
} piped_log;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_close_piped_log"><SAMP>ap_close_piped_log</SAMP></A>,
        <A HREF="#ap_open_piped_log"><SAMP>ap_open_piped_log</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="pool">
    pool
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
[struct] pool <EM>opaque-structure</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
pool *p; 
char *foo; 
foo = <A HREF="#ap_pstrcat">ap_pstrcat</A>(p, "string 1", "string 2", NULL);
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_bytes_in_pool"><SAMP>ap_bytes_in_pool</SAMP></A>,
        <A HREF="#ap_clear_pool"><SAMP>ap_clear_pool</SAMP></A>,
        <A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>,
        <A HREF="#ap_find_pool"><SAMP>ap_find_pool</SAMP></A>,
        <A HREF="#ap_make_sub_pool"><SAMP>ap_make_sub_pool</SAMP></A>,
        <A HREF="#ap_palloc"><SAMP>ap_palloc</SAMP></A>,
        <A HREF="#ap_pcalloc"><SAMP>ap_pcalloc</SAMP></A>,
        <A HREF="#ap_pclosedir"><SAMP>ap_pclosedir</SAMP></A>,
        <A HREF="#ap_pclosef"><SAMP>ap_pclosef</SAMP></A>,
        <A HREF="#ap_pclosesocket"><SAMP>ap_pclosesocket</SAMP></A>,
        <A HREF="#ap_pduphostent"><SAMP>ap_pduphostent</SAMP></A>,
        <A HREF="#ap_pfclose"><SAMP>ap_pfclose</SAMP></A>,
        <A HREF="#ap_pfdopen"><SAMP>ap_pfdopen</SAMP></A>,
        <A HREF="#ap_pfopen"><SAMP>ap_pfopen</SAMP></A>,
        <A HREF="#ap_pgethostbyname"><SAMP>ap_pgethostbyname</SAMP></A>,
        <A HREF="#ap_pool_is_ancestor"><SAMP>ap_pool_is_ancestor</SAMP></A>,
        <A HREF="#ap_pool_join"><SAMP>ap_pool_join</SAMP></A>,
        <A HREF="#ap_popendir"><SAMP>ap_popendir</SAMP></A>,
        <A HREF="#ap_popenf"><SAMP>ap_popenf</SAMP></A>,
        <A HREF="#ap_pregcomp"><SAMP>ap_pregcomp</SAMP></A>,
        <A HREF="#ap_pregfree"><SAMP>ap_pregfree</SAMP></A>,
        <A HREF="#ap_psocket"><SAMP>ap_psocket</SAMP></A>,
        <A HREF="#ap_pstrcat"><SAMP>ap_pstrcat</SAMP></A>,
        <A HREF="#ap_pstrdup"><SAMP>ap_pstrdup</SAMP></A>,
        <A HREF="#ap_pstrndup"><SAMP>ap_pstrndup</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="regex_t">
    regex_t
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
        int re_magic; 
        size_t re_nsub; 
        const char *re_endp; 
        struct re_guts *re_g; 
} regex_t;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="regmatch_t">
    regmatch_t
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="request_rec">
    request_rec
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
 typedef struct request_rec request_rec; 
struct request_rec { 
    <A HREF="#pool">pool</A> *<A HREF="#pool">pool</A>; 
    <A HREF="#conn_rec">conn_rec</A> *connection; 
    <A HREF="#server_rec">server_rec</A> *server; 
    request_rec *next; 
    request_rec *prev; 
    request_rec *main; 
    char *the_request; 
    int assbackwards; 
    int proxyreq; 
    int header_only; 
    char *protocol; 
    int proto_num; 
    char *hostname; 
    time_t request_time; 
    char *status_line; 
    int status; 
    char *method; 
    int method_number; 
    int allowed; 
    int sent_bodyct; 
    long bytes_sent; 
    time_t mtime; 
    int chunked; 
    int byterange; 
    char *boundary; 
    char *range; 
    long clength; 
    long remaining; 
    long read_length; 
    int read_body; 
    int read_chunked; 
    <A HREF="#table">table</A> *headers_in; 
    <A HREF="#table">table</A> *headers_out; 
    <A HREF="#table">table</A> *err_headers_out; 
    <A HREF="#table">table</A> *subprocess_env; 
    <A HREF="#table">table</A> *notes; 
    char *content_type; 
    char *handler; 
    char *content_encoding; 
    char *content_language; 
    <A HREF="#array_header">array_header</A> *content_languages; 
    int no_cache; 
    int no_local_copy; 
    char *unparsed_uri; 
    char *uri; 
    char *filename; 
    char *path_info; 
    char *args; 
    struct stat finfo; 
    <A HREF="#uri_components">uri_components</A> parsed_uri; 
    void *per_dir_config; 
    void *request_config; 
    const struct htaccess_result *htaccess; 
};
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="scoreboard">
    scoreboard
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
    <A HREF="#short_score">short_score</A> servers[<A HREF="#HARD_SERVER_LIMIT">HARD_SERVER_LIMIT</A>]; 
    <A HREF="#parent_score">parent_score</A> parent[<A HREF="#HARD_SERVER_LIMIT">HARD_SERVER_LIMIT</A>]; 
    <A HREF="#global_score">global_score</A> global; 
} scoreboard;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="server_rec">
    server_rec
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
No prototype or definition available.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="short_score">
    short_score
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
#ifdef OPTIMIZE_TIMEOUTS 
    <A HREF="#vtime_t">vtime_t</A> cur_vtime; 
    unsigned short timeout_len; 
#endif 
    unsigned char status; 
#if defined(STATUS) 
    unsigned long access_count; 
    unsigned long bytes_served; 
    unsigned long my_access_count; 
    unsigned long my_bytes_served; 
    unsigned long conn_bytes; 
    unsigned short conn_count; 
#if defined(NO_GETTIMEOFDAY) 
    clock_t start_time; 
    clock_t stop_time; 
#else 
    struct timeval start_time; 
    struct timeval stop_time; 
#endif 
#ifndef NO_TIMES 
    struct tms times; 
#endif 
#ifndef OPTIMIZE_TIMEOUTS 
    time_t last_used; 
#endif 
    char client[32]; 
    char request[64]; 
    char vhost[32]; 
#endif 
} short_score;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="table">
    table
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct table {<EM>opaque-structure</EM>}
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_clear_table"><SAMP>ap_clear_table</SAMP></A>,
        <A HREF="#ap_copy_table"><SAMP>ap_copy_table</SAMP></A>,
        <A HREF="#ap_make_table"><SAMP>ap_make_table</SAMP></A>,
        <A HREF="#ap_overlay_tables"><SAMP>ap_overlay_tables</SAMP></A>,
        <A HREF="#ap_table_add"><SAMP>ap_table_add</SAMP></A>,
        <A HREF="#ap_table_addn"><SAMP>ap_table_addn</SAMP></A>,
        <A HREF="#ap_table_do"><SAMP>ap_table_do</SAMP></A>,
        <A HREF="#ap_table_get"><SAMP>ap_table_get</SAMP></A>,
        <A HREF="#ap_table_merge"><SAMP>ap_table_merge</SAMP></A>,
        <A HREF="#ap_table_mergen"><SAMP>ap_table_mergen</SAMP></A>,
        <A HREF="#ap_table_set"><SAMP>ap_table_set</SAMP></A>,
        <A HREF="#ap_table_setn"><SAMP>ap_table_setn</SAMP></A>,
        <A HREF="#ap_table_unset"><SAMP>ap_table_unset</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="uri_components">
    uri_components
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef struct { 
    char *scheme; 
    char *hostinfo; 
    char *user; 
    char *password; 
    char *hostname; 
    char *port_str; 
    char *path; 
    char *query; 
    char *fragment; 
    struct hostent *hostent; 
    unsigned short port; 
    unsigned is_initialized:1; 
    unsigned dns_looked_up:1; 
    unsigned dns_resolved:1; 
} uri_components; 
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="vtime_t">
    vtime_t
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
typedef unsigned vtime_t;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H2>
   <A NAME="Cells">
    Global Data Cells
   </A>
  </H2>
  <HR>
  <H3>
   <A NAME="ap_day_snames">
    ap_day_snames
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char ap_day_snames[7][4];
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_month_snames">
    ap_month_snames
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
const char ap_month_snames[12][4];
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_restart_time">
    ap_restart_time
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
time_t ap_restart_time;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_scoreboard_image">
    ap_scoreboard_image
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
extern <A HREF="#scoreboard">scoreboard</A> *ap_scoreboard_image;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ap_server_argv0">
    ap_server_argv0
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char *ap_server_argv0;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_server_root">
    ap_server_root
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
char ap_server_root[<A HREF="#MAX_STRING_LEN">MAX_STRING_LEN</A>];
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ap_suexec_enabled">
    ap_suexec_enabled
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
int ap_suexec_enabled;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="core_module">
    core_module
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#module">module</A> core_module {<EM><A HREF="#module">module</A>-specific-info</EM>};
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_add_module"><SAMP>ap_add_module</SAMP></A>,
        <A HREF="#ap_add_named_module"><SAMP>ap_add_named_module</SAMP></A>,
        <A HREF="#module"><SAMP>module</SAMP></A>,
        <A HREF="#top_module"><SAMP>top_module</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="top_module">
    top_module
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<A HREF="#module">module</A> *top_module;
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ap_add_module"><SAMP>ap_add_module</SAMP></A>,
        <A HREF="#ap_add_named_module"><SAMP>ap_add_named_module</SAMP></A>,
        <A HREF="#core_module"><SAMP>core_module</SAMP></A>,
        <A HREF="#module"><SAMP>module</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H2>
   <A NAME="Constants">
    Constant Definitions
   </A>
  </H2>
   <P>
   Many of the compile-time choices are determined by the settings of
   various constants created with <CODE>#define</CODE> statements.
   Things like the maximum size of fixed-length buffers, the server
   version string, and operating system-specific code fragment compilation
   are controlled by constants.
   </P>
   <P>
   Some of the Apache Web server's constants (such as
   <A HREF="#SERVER_VERSION"><SAMP>SERVER_VERSION</SAMP></A>)
   can be overridden with
   compile-time definitions on the compiler command line.  Others, like
   <A HREF="#MAX_STRING_LEN"><SAMP>MAX_STRING_LEN</SAMP></A>,
   are provided as conveniences, and shouldn't be modified except under
   special circumstances.  Still others, such as
   <A HREF="#OR_LIMIT"><SAMP>OR_LIMIT</SAMP></A>,
   have specific values that <STRONG>must not</STRONG> be altered.
   </P>
  <HR>
  <H3>
   <A NAME="ACCESS_CONF">
    ACCESS_CONF
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define ACCESS_CONF <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#OR_AUTHCFG"><SAMP>OR_AUTHCFG</SAMP></A>,
        <A HREF="#OR_FILEINFO"><SAMP>OR_FILEINFO</SAMP></A>,
        <A HREF="#OR_INDEXES"><SAMP>OR_INDEXES</SAMP></A>,
        <A HREF="#OR_LIMIT"><SAMP>OR_LIMIT</SAMP></A>,
        <A HREF="#OR_OPTIONS"><SAMP>OR_OPTIONS</SAMP></A>,
        <A HREF="#RSRC_CONF"><SAMP>RSRC_CONF</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="cmd_how">
    cmd_how
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
enum cmd_how { 
    <A HREF="#RAW_ARGS">RAW_ARGS</A>, 
    <A HREF="#TAKE1">TAKE1</A>, 
    <A HREF="#TAKE2">TAKE2</A>, 
    <A HREF="#ITERATE">ITERATE</A>, 
    <A HREF="#ITERATE2">ITERATE2</A>, 
    <A HREF="#FLAG">FLAG</A>, 
    <A HREF="#NO_ARGS">NO_ARGS</A>, 
    <A HREF="#TAKE12">TAKE12</A>, 
    <A HREF="#TAKE3">TAKE3</A>, 
    <A HREF="#TAKE23">TAKE23</A>, 
    <A HREF="#TAKE123">TAKE123</A>, 
    <A HREF="#TAKE13">TAKE13</A> 
}; 
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="DECLINED">
    DECLINED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define DECLINED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#DONE"><SAMP>DONE</SAMP></A>,
        <A HREF="#OK"><SAMP>OK</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="DONE">
    DONE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define DONE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#DECLINED"><SAMP>DECLINED</SAMP></A>,
        <A HREF="#OK"><SAMP>OK</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="FLAG">
    FLAG
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> autoindex_cmds[] =
{
        :
    {"FancyIndexing", fancy_indexing, NULL, DIR_CMD_PERMS, FLAG,
     "Limited to 'on' or 'off' (superseded by IndexOptions FancyIndexing)"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="HARD_SERVER_LIMIT">
    HARD_SERVER_LIMIT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HARD_SERVER_LIMIT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_ACCEPTED">
    HTTP_ACCEPTED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_ACCEPTED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_BAD_GATEWAY">
    HTTP_BAD_GATEWAY
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_BAD_GATEWAY <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_BAD_REQUEST">
    HTTP_BAD_REQUEST
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_BAD_REQUEST <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_CONFLICT">
    HTTP_CONFLICT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_CONFLICT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_CONTINUE">
    HTTP_CONTINUE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_CONTINUE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_CREATED">
    HTTP_CREATED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_CREATED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_FORBIDDEN">
    HTTP_FORBIDDEN
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_FORBIDDEN <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_GATEWAY_TIME_OUT">
    HTTP_GATEWAY_TIME_OUT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_GATEWAY_TIME_OUT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_GONE">
    HTTP_GONE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_GONE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_INTERNAL_SERVER_ERROR">
    HTTP_INTERNAL_SERVER_ERROR
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_INTERNAL_SERVER_ERROR <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_LENGTH_REQUIRED">
    HTTP_LENGTH_REQUIRED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_LENGTH_REQUIRED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_METHOD_NOT_ALLOWED">
    HTTP_METHOD_NOT_ALLOWED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_METHOD_NOT_ALLOWED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_MOVED_PERMANENTLY">
    HTTP_MOVED_PERMANENTLY
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_MOVED_PERMANENTLY <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_MOVED_TEMPORARILY">
    HTTP_MOVED_TEMPORARILY
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_MOVED_TEMPORARILY <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_MULTIPLE_CHOICES">
    HTTP_MULTIPLE_CHOICES
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_MULTIPLE_CHOICES <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_NON_AUTHORITATIVE">
    HTTP_NON_AUTHORITATIVE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_NON_AUTHORITATIVE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_NOT_ACCEPTABLE">
    HTTP_NOT_ACCEPTABLE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_NOT_ACCEPTABLE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_NOT_FOUND">
    HTTP_NOT_FOUND
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_NOT_FOUND <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_NOT_IMPLEMENTED">
    HTTP_NOT_IMPLEMENTED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_NOT_IMPLEMENTED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_NOT_MODIFIED">
    HTTP_NOT_MODIFIED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_NOT_MODIFIED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_NO_CONTENT">
    HTTP_NO_CONTENT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_NO_CONTENT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_OK">
    HTTP_OK
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_OK <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_PARTIAL_CONTENT">
    HTTP_PARTIAL_CONTENT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_PARTIAL_CONTENT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_PAYMENT_REQUIRED">
    HTTP_PAYMENT_REQUIRED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_PAYMENT_REQUIRED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_PRECONDITION_FAILED">
    HTTP_PRECONDITION_FAILED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_PRECONDITION_FAILED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_PROXY_AUTHENTICATION_REQUIRED">
    HTTP_PROXY_AUTHENTICATION_REQUIRED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_PROXY_AUTHENTICATION_REQUIRED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_REQUEST_ENTITY_TOO_LARGE">
    HTTP_REQUEST_ENTITY_TOO_LARGE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_REQUEST_ENTITY_TOO_LARGE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_REQUEST_TIME_OUT">
    HTTP_REQUEST_TIME_OUT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_REQUEST_TIME_OUT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_REQUEST_URI_TOO_LARGE">
    HTTP_REQUEST_URI_TOO_LARGE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_REQUEST_URI_TOO_LARGE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_RESET_CONTENT">
    HTTP_RESET_CONTENT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_RESET_CONTENT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_SEE_OTHER">
    HTTP_SEE_OTHER
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_SEE_OTHER <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_SERVICE_UNAVAILABLE">
    HTTP_SERVICE_UNAVAILABLE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_SERVICE_UNAVAILABLE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_SWITCHING_PROTOCOLS">
    HTTP_SWITCHING_PROTOCOLS
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_SWITCHING_PROTOCOLS <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_UNAUTHORIZED">
    HTTP_UNAUTHORIZED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_UNAUTHORIZED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_UNSUPPORTED_MEDIA_TYPE">
    HTTP_UNSUPPORTED_MEDIA_TYPE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_UNSUPPORTED_MEDIA_TYPE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_USE_PROXY">
    HTTP_USE_PROXY
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_USE_PROXY <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_VARIANT_ALSO_VARIES">
    HTTP_VARIANT_ALSO_VARIES
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_VARIANT_ALSO_VARIES <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="HTTP_VERSION_NOT_SUPPORTED">
    HTTP_VERSION_NOT_SUPPORTED
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define HTTP_VERSION_NOT_SUPPORTED <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="ITERATE">
    ITERATE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> autoindex_cmds[] =
{
        :
    {"IndexIgnore", add_ignore, NULL, DIR_CMD_PERMS, ITERATE,
     "one or more file extensions"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="ITERATE2">
    ITERATE2
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> autoindex_cmds[] =
{
    {"AddIcon", add_icon, BY_PATH, DIR_CMD_PERMS, ITERATE2,
     "an icon URL followed by one or more filenames"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="kill_conditions">
    kill_conditions
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
enum kill_conditions { 
    kill_never, 
    kill_always, 
    kill_after_timeout, 
    just_wait, 
    kill_only_once 
};
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="MAX_STRING_LEN">
    MAX_STRING_LEN
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define MAX_STRING_LEN <EM>numbytes</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
char random_string[MAX_STRING_LEN];
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="MODULE_MAGIC_NUMBER">
    MODULE_MAGIC_NUMBER
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define MODULE_MAGIC_NUMBER <EM>monotonically-increasing-value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="M_CONNECT">
    M_CONNECT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define M_CONNECT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#M_DELETE"><SAMP>M_DELETE</SAMP></A>,
        <A HREF="#M_GET"><SAMP>M_GET</SAMP></A>,
        <A HREF="#M_INVALID"><SAMP>M_INVALID</SAMP></A>,
        <A HREF="#M_OPTIONS"><SAMP>M_OPTIONS</SAMP></A>,
        <A HREF="#M_POST"><SAMP>M_POST</SAMP></A>,
        <A HREF="#M_PUT"><SAMP>M_PUT</SAMP></A>,
        <A HREF="#M_TRACE"><SAMP>M_TRACE</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="M_DELETE">
    M_DELETE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define M_DELETE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#M_CONNECT"><SAMP>M_CONNECT</SAMP></A>,
        <A HREF="#M_GET"><SAMP>M_GET</SAMP></A>,
        <A HREF="#M_INVALID"><SAMP>M_INVALID</SAMP></A>,
        <A HREF="#M_OPTIONS"><SAMP>M_OPTIONS</SAMP></A>,
        <A HREF="#M_POST"><SAMP>M_POST</SAMP></A>,
        <A HREF="#M_PUT"><SAMP>M_PUT</SAMP></A>,
        <A HREF="#M_TRACE"><SAMP>M_TRACE</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="M_GET">
    M_GET
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define M_GET <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#M_CONNECT"><SAMP>M_CONNECT</SAMP></A>,
        <A HREF="#M_DELETE"><SAMP>M_DELETE</SAMP></A>,
        <A HREF="#M_INVALID"><SAMP>M_INVALID</SAMP></A>,
        <A HREF="#M_OPTIONS"><SAMP>M_OPTIONS</SAMP></A>,
        <A HREF="#M_POST"><SAMP>M_POST</SAMP></A>,
        <A HREF="#M_PUT"><SAMP>M_PUT</SAMP></A>,
        <A HREF="#M_TRACE"><SAMP>M_TRACE</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="M_INVALID">
    M_INVALID
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define M_INVALID <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#M_CONNECT"><SAMP>M_CONNECT</SAMP></A>,
        <A HREF="#M_DELETE"><SAMP>M_DELETE</SAMP></A>,
        <A HREF="#M_GET"><SAMP>M_GET</SAMP></A>,
        <A HREF="#M_OPTIONS"><SAMP>M_OPTIONS</SAMP></A>,
        <A HREF="#M_POST"><SAMP>M_POST</SAMP></A>,
        <A HREF="#M_PUT"><SAMP>M_PUT</SAMP></A>,
        <A HREF="#M_TRACE"><SAMP>M_TRACE</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="M_OPTIONS">
    M_OPTIONS
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define M_OPTIONS <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#M_CONNECT"><SAMP>M_CONNECT</SAMP></A>,
        <A HREF="#M_DELETE"><SAMP>M_DELETE</SAMP></A>,
        <A HREF="#M_GET"><SAMP>M_GET</SAMP></A>,
        <A HREF="#M_INVALID"><SAMP>M_INVALID</SAMP></A>,
        <A HREF="#M_POST"><SAMP>M_POST</SAMP></A>,
        <A HREF="#M_PUT"><SAMP>M_PUT</SAMP></A>,
        <A HREF="#M_TRACE"><SAMP>M_TRACE</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="M_POST">
    M_POST
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define M_POST <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#M_CONNECT"><SAMP>M_CONNECT</SAMP></A>,
        <A HREF="#M_DELETE"><SAMP>M_DELETE</SAMP></A>,
        <A HREF="#M_GET"><SAMP>M_GET</SAMP></A>,
        <A HREF="#M_INVALID"><SAMP>M_INVALID</SAMP></A>,
        <A HREF="#M_OPTIONS"><SAMP>M_OPTIONS</SAMP></A>,
        <A HREF="#M_PUT"><SAMP>M_PUT</SAMP></A>,
        <A HREF="#M_TRACE"><SAMP>M_TRACE</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="M_PUT">
    M_PUT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define M_PUT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#M_CONNECT"><SAMP>M_CONNECT</SAMP></A>,
        <A HREF="#M_DELETE"><SAMP>M_DELETE</SAMP></A>,
        <A HREF="#M_GET"><SAMP>M_GET</SAMP></A>,
        <A HREF="#M_INVALID"><SAMP>M_INVALID</SAMP></A>,
        <A HREF="#M_OPTIONS"><SAMP>M_OPTIONS</SAMP></A>,
        <A HREF="#M_POST"><SAMP>M_POST</SAMP></A>,
        <A HREF="#M_TRACE"><SAMP>M_TRACE</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="M_TRACE">
    M_TRACE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define M_TRACE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#M_CONNECT"><SAMP>M_CONNECT</SAMP></A>,
        <A HREF="#M_DELETE"><SAMP>M_DELETE</SAMP></A>,
        <A HREF="#M_GET"><SAMP>M_GET</SAMP></A>,
        <A HREF="#M_INVALID"><SAMP>M_INVALID</SAMP></A>,
        <A HREF="#M_OPTIONS"><SAMP>M_OPTIONS</SAMP></A>,
        <A HREF="#M_POST"><SAMP>M_POST</SAMP></A>,
        <A HREF="#M_PUT"><SAMP>M_PUT</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="NO_ARGS">
    NO_ARGS
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> negotiation_cmds[] =
{
    {"CacheNegotiatedDocs", cache_negotiated_docs, NULL, <A HREF="#RSRC_CONF">RSRC_CONF</A>, NO_ARGS,
     "no arguments (either present or absent)"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="OK">
    OK
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define OK <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#DECLINED"><SAMP>DECLINED</SAMP></A>,
        <A HREF="#DONE"><SAMP>DONE</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="OR_AUTHCFG">
    OR_AUTHCFG
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define OR_AUTHCFG <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ACCESS_CONF"><SAMP>ACCESS_CONF</SAMP></A>,
        <A HREF="#OR_FILEINFO"><SAMP>OR_FILEINFO</SAMP></A>,
        <A HREF="#OR_INDEXES"><SAMP>OR_INDEXES</SAMP></A>,
        <A HREF="#OR_LIMIT"><SAMP>OR_LIMIT</SAMP></A>,
        <A HREF="#OR_OPTIONS"><SAMP>OR_OPTIONS</SAMP></A>,
        <A HREF="#RSRC_CONF"><SAMP>RSRC_CONF</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="OR_FILEINFO">
    OR_FILEINFO
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define OR_FILEINFO <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ACCESS_CONF"><SAMP>ACCESS_CONF</SAMP></A>,
        <A HREF="#OR_AUTHCFG"><SAMP>OR_AUTHCFG</SAMP></A>,
        <A HREF="#OR_INDEXES"><SAMP>OR_INDEXES</SAMP></A>,
        <A HREF="#OR_LIMIT"><SAMP>OR_LIMIT</SAMP></A>,
        <A HREF="#OR_OPTIONS"><SAMP>OR_OPTIONS</SAMP></A>,
        <A HREF="#RSRC_CONF"><SAMP>RSRC_CONF</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="OR_INDEXES">
    OR_INDEXES
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define OR_INDEXES <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ACCESS_CONF"><SAMP>ACCESS_CONF</SAMP></A>,
        <A HREF="#OR_AUTHCFG"><SAMP>OR_AUTHCFG</SAMP></A>,
        <A HREF="#OR_FILEINFO"><SAMP>OR_FILEINFO</SAMP></A>,
        <A HREF="#OR_LIMIT"><SAMP>OR_LIMIT</SAMP></A>,
        <A HREF="#OR_OPTIONS"><SAMP>OR_OPTIONS</SAMP></A>,
        <A HREF="#RSRC_CONF"><SAMP>RSRC_CONF</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="OR_LIMIT">
    OR_LIMIT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define OR_LIMIT <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ACCESS_CONF"><SAMP>ACCESS_CONF</SAMP></A>,
        <A HREF="#OR_AUTHCFG"><SAMP>OR_AUTHCFG</SAMP></A>,
        <A HREF="#OR_FILEINFO"><SAMP>OR_FILEINFO</SAMP></A>,
        <A HREF="#OR_INDEXES"><SAMP>OR_INDEXES</SAMP></A>,
        <A HREF="#OR_OPTIONS"><SAMP>OR_OPTIONS</SAMP></A>,
        <A HREF="#RSRC_CONF"><SAMP>RSRC_CONF</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="OR_OPTIONS">
    OR_OPTIONS
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define OR_OPTIONS <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ACCESS_CONF"><SAMP>ACCESS_CONF</SAMP></A>,
        <A HREF="#OR_AUTHCFG"><SAMP>OR_AUTHCFG</SAMP></A>,
        <A HREF="#OR_FILEINFO"><SAMP>OR_FILEINFO</SAMP></A>,
        <A HREF="#OR_INDEXES"><SAMP>OR_INDEXES</SAMP></A>,
        <A HREF="#OR_LIMIT"><SAMP>OR_LIMIT</SAMP></A>,
        <A HREF="#RSRC_CONF"><SAMP>RSRC_CONF</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="RAW_ARGS">
    RAW_ARGS
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> autoindex_cmds[] =
{
        :
    {"IndexOptions", add_opts, NULL, DIR_CMD_PERMS, RAW_ARGS,
     "one or more index options"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="RSRC_CONF">
    RSRC_CONF
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define RSRC_CONF <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#ACCESS_CONF"><SAMP>ACCESS_CONF</SAMP></A>,
        <A HREF="#OR_AUTHCFG"><SAMP>OR_AUTHCFG</SAMP></A>,
        <A HREF="#OR_FILEINFO"><SAMP>OR_FILEINFO</SAMP></A>,
        <A HREF="#OR_INDEXES"><SAMP>OR_INDEXES</SAMP></A>,
        <A HREF="#OR_LIMIT"><SAMP>OR_LIMIT</SAMP></A>,
        <A HREF="#OR_OPTIONS"><SAMP>OR_OPTIONS</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_BUSY_DNS">
    SERVER_BUSY_DNS
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_BUSY_DNS <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_BUSY_KEEPALIVE">
    SERVER_BUSY_KEEPALIVE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_BUSY_KEEPALIVE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_BUSY_LOG">
    SERVER_BUSY_LOG
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_BUSY_LOG <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_BUSY_READ">
    SERVER_BUSY_READ
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_BUSY_READ <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_BUSY_WRITE">
    SERVER_BUSY_WRITE
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_BUSY_WRITE <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_DEAD">
    SERVER_DEAD
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_DEAD <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_GRACEFUL">
    SERVER_GRACEFUL
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_GRACEFUL <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_NUM_STATUS">
    SERVER_NUM_STATUS
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_NUM_STATUS <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_READY">
    SERVER_READY
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_READY <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_STARTING">
    SERVER_STARTING
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_STARTING <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="SERVER_SUPPORT">
    SERVER_SUPPORT
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_SUPPORT "http://www.apache.org/"
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="SERVER_VERSION">
    SERVER_VERSION
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define SERVER_VERSION <EM>string</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
Deprecated; use <A HREF="#ap_get_server_version">ap_get_server_version</A>() instead.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
  <HR>
  <H3>
   <A NAME="START_PREQUEST">
    START_PREQUEST
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define START_PREQUEST <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#STOP_PREQUEST"><SAMP>STOP_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="STOP_PREQUEST">
    STOP_PREQUEST
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
#define STOP_PREQUEST <EM>value</EM>
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#SERVER_BUSY_DNS"><SAMP>SERVER_BUSY_DNS</SAMP></A>,
        <A HREF="#SERVER_BUSY_KEEPALIVE"><SAMP>SERVER_BUSY_KEEPALIVE</SAMP></A>,
        <A HREF="#SERVER_BUSY_LOG"><SAMP>SERVER_BUSY_LOG</SAMP></A>,
        <A HREF="#SERVER_BUSY_READ"><SAMP>SERVER_BUSY_READ</SAMP></A>,
        <A HREF="#SERVER_BUSY_WRITE"><SAMP>SERVER_BUSY_WRITE</SAMP></A>,
        <A HREF="#SERVER_DEAD"><SAMP>SERVER_DEAD</SAMP></A>,
        <A HREF="#SERVER_GRACEFUL"><SAMP>SERVER_GRACEFUL</SAMP></A>,
        <A HREF="#SERVER_NUM_STATUS"><SAMP>SERVER_NUM_STATUS</SAMP></A>,
        <A HREF="#SERVER_READY"><SAMP>SERVER_READY</SAMP></A>,
        <A HREF="#SERVER_STARTING"><SAMP>SERVER_STARTING</SAMP></A>,
        <A HREF="#START_PREQUEST"><SAMP>START_PREQUEST</SAMP></A>,
        <A HREF="#ap_exists_scoreboard_image"><SAMP>ap_exists_scoreboard_image</SAMP></A>,
        <A HREF="#ap_scoreboard_image"><SAMP>ap_scoreboard_image</SAMP></A>,
        <A HREF="#ap_sync_scoreboard_image"><SAMP>ap_sync_scoreboard_image</SAMP></A>,
        <A HREF="#global_score"><SAMP>global_score</SAMP></A>,
        <A HREF="#parent_score"><SAMP>parent_score</SAMP></A>,
        <A HREF="#scoreboard"><SAMP>scoreboard</SAMP></A>,
        <A HREF="#short_score"><SAMP>short_score</SAMP></A>,
        <A HREF="#vtime_t"><SAMP>vtime_t</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="TAKE1">
    TAKE1
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> autoindex_cmds[] =
{
        :
    {"HeaderName", add_header, NULL, DIR_CMD_PERMS, TAKE1, "a filename"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="TAKE12">
    TAKE12
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> config_log_cmds[] =
{
        :
    {"LogFormat", log_format, NULL, <A HREF="#RSRC_CONF">RSRC_CONF</A>, TAKE12,
     "a log format string (see docs) and an optional format name"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="TAKE123">
    TAKE123
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="TAKE13">
    TAKE13
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="TAKE2">
    TAKE2
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> action_cmds[] =
{
    {"Action", add_action, NULL, <A HREF="#OR_FILEINFO">OR_FILEINFO</A>, TAKE2,
     "a media type followed by a script name"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="TAKE23">
    TAKE23
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
static const <A HREF="#command_rec">command_rec</A> headers_cmds[] =
{
    {"Header", header_cmd, NULL, <A HREF="#OR_FILEINFO">OR_FILEINFO</A>, TAKE23,
     "an action, header and value"},
        :
    {NULL}
};
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE3"><SAMP>TAKE3</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
  <H3>
   <A NAME="TAKE3">
    TAKE3
   </A>
  </H3>
   <P>
   Definition:
   </P>
   <DL>
    <DD>
     <PRE>
<EM>See</EM> <A HREF="#cmd_how">cmd_how</A>.
     </PRE>
    </DD>
   </DL>
   <P>
   Usage example:
   </P>
   <DL>
    <DD>
     <PRE>
No examples available.
     </PRE>
    </DD>
   </DL>
   <P>
   No documentation available.
   </P>
   <DL COMPACT>
    <DT><EM>See also:</EM>
    </DT>
    <DD><A HREF="#FLAG"><SAMP>FLAG</SAMP></A>,
        <A HREF="#ITERATE"><SAMP>ITERATE</SAMP></A>,
        <A HREF="#ITERATE2"><SAMP>ITERATE2</SAMP></A>,
        <A HREF="#NO_ARGS"><SAMP>NO_ARGS</SAMP></A>,
        <A HREF="#RAW_ARGS"><SAMP>RAW_ARGS</SAMP></A>,
        <A HREF="#TAKE1"><SAMP>TAKE1</SAMP></A>,
        <A HREF="#TAKE12"><SAMP>TAKE12</SAMP></A>,
        <A HREF="#TAKE123"><SAMP>TAKE123</SAMP></A>,
        <A HREF="#TAKE13"><SAMP>TAKE13</SAMP></A>,
        <A HREF="#TAKE2"><SAMP>TAKE2</SAMP></A>,
        <A HREF="#TAKE23"><SAMP>TAKE23</SAMP></A>,
        <A HREF="#cmd_how"><SAMP>cmd_how</SAMP></A>
    </DD>
   </DL>
  <HR>
<!-- %%END%% -->
<!-- DO NOT EDIT ABOVE THIS LINE.  The contents of this file between -->
<!-- the sentinel lines is generated by a script, so any edits here  -->
<!-- will be lost the next time the script is run.                   -->

<!--#include virtual="footer.html" -->
 </BODY>
</HTML>
