coar 98/05/03 12:45:56
Added: apidoc api.list Log: Here's the data file which defines all the API entities. It's documented internally as to format. Revision Changes Path 1.1 apache-devsite/apidoc/api.list Index: api.list =================================================================== #; #; Metadata about API components. Each line contains several fields, #; separated by vbars (|). Comments begin with '#;' and continue #; to the end of the line. Leading whitespace is discarded except as #; noted below. Continuation is indicated by a '\' as the last #; non-blank, non-comment character on a line. #; #; o Whitepace before a continuation character ('\') is #; not discarded, EXCEPT THAT #; o Whitespace between '\n' and '\' IS discarded. #; o If the last significant text on a continued line is '\n', the #; leading whitespace on the continuation line is NOT discarded. This #; provides for indentation of continuation text (as in a structure #; definition). #; #; By convention the '|' field delimiter appears on same line as the #; field that *follows* it. #; #; Each record looks like: #; #; type|name|definition|sample-use|see-also|desc-file #; #; where type is one of #; R API routine #; S structure/datatype #; C constant #; D global data cell #; X name for a list of cross-references (usable in the see-also field) #; #; see-also is a comma-separated list of other names in this file. If #; the current entity-name appears in the list, it's ignored. #; desc-file is the name of a file (relative to the cwd) containing an HTML #; description for the component. Not used for 'X' records. #; #; HTML markup is permitted in all fields except type and name. #; #; Due to '|' being used as the field delimiter, vbars must be represented #; as '|'. #; #; Due to the interpretation of text as HTML, all ampersands ('&') must be #; escaped as '&'. #; #; The special tag '$*' will be replaced wherever it occurs in a record #; with the name of the entity being defined #; #; #; Symbols related to how the server identifies itself #; X|SA-identity\ |\ #; Definition |\ #; Examples |ap_get_server_built,ap_get_server_name,ap_get_server_version\ | R|ap_get_server_built\ |char *$*(void);\ #; Definition |char *string;\nstring = $*();\ #; Examples |SA-identity\ #; Cross-references | #; Entity documention HTML file R|ap_get_server_name\ |char *$*(void);\ |char *string;\nstring = $*();\ |SA-identity\ | R|ap_get_server_version\ |char *$*(void);\ |char *string;\nstring = $*();\ |SA-identity\ | #; #; Stuff related to the module structure #; X|SA-module\ |\ |\ |core_module,top_module,module,ap_add_module,ap_add_named_module\ | S|module\ #; Since this is a multi-line structure, beware when editing |typedef struct module_struct { \n \ int version; \n \ int module_index; \n \ const char *name; \n \ void *dynamic_load_handle; \n \ struct module_struct *next; \n \ #ifdef ULTRIX_BRAIN_DEATH \n \ void (*init) (); \n \ void *(*create_dir_config) (); \n \ void *(*merge_dir_config) (); \n \ void *(*create_server_config) (); \n \ void *(*merge_server_config) (); \n \ #else \n \ void (*init) (server_rec *s, pool *p); \n \ void *(*create_dir_config) (pool *p, char *dir); \n \ void *(*merge_dir_config) (pool *p, void *base_conf, void *new_conf); \n \ void *(*create_server_config) (pool *p, server_rec *s); \n \ void *(*merge_server_config) (pool *p, \ void *base_conf, void *new_conf); \n \ #endif \n \ const command_rec *cmds; \n \ const handler_rec *handlers; \n \ int (*translate_handler) (request_rec *r); \n \ int (*ap_check_user_id) (request_rec *r); \n \ int (*auth_checker) (request_rec *r); \n \ int (*access_checker) (request_rec *r); \n \ int (*type_checker) (request_rec *r); \n \ int (*fixer_upper) (request_rec *r); \n \ int (*logger) (request_rec *r); \n \ int (*header_parser) (request_rec *r); \n \ #ifdef ULTRIX_BRAIN_DEATH \n \ void (*child_init) (); \n \ void (*child_exit) (); \n \ #else \n \ void (*child_init) (server_rec *s, pool *p); \n \ void (*child_exit) (server_rec *s, pool *p); \n \ #endif \n \ int (*post_read_request) (request_rec *)r; \n \ } module; \ |\ $* *mpointer; \n \ <EM>or</EM> \n \ module action_module = \n \ { \n \ STANDARD_MODULE_STUFF, \n \ NULL, /* initializer */ \n \ create_action_dir_config, /* dir config creater */ \n \ merge_action_dir_configs, /* dir merger --- default is to override */ \n \ NULL, /* server config */ \n \ NULL, /* merge server config */ \n \ action_cmds, /* command table */ \n \ action_handlers, /* handlers */ \n \ NULL, /* filename translation */ \n \ NULL, /* check_user_id */ \n \ NULL, /* check auth */ \n \ NULL, /* check access */ \n \ NULL, /* type_checker */ \n \ NULL, /* fixups */ \n \ NULL, /* logger */ \n \ NULL, /* header parser */ \n \ NULL, /* child_init */ \n \ NULL, /* child_exit */ \n \ NULL /* post read-request */ \n \ }; \ |SA-module\ | R|ap_add_module\ |void $*(module *m);\ |\ |SA-module\ | R|ap_add_named_module\ |int $*(const char *name);\ |\ |SA-module\ | D|core_module\ |module $* {<EM>module-specific-info</EM>};\ |\ |SA-module\ | D|top_module\ |module *$*;\ |\ |SA-module\ | #; #; Miscellaneous data cells #; D|ap_day_snames\ |const char $*[7][4];\ |\ |\ | D|ap_month_snames\ |const char $*[12][4];\ |\ |\ | D|ap_restart_time\ |time_t $*;\ |\ |\ | D|ap_server_argv0\ |char *$*;\ |\ |\ | D|ap_server_root\ |char $*[MAX_STRING_LEN];\ |\ |\ | D|ap_suexec_enabled\ |int $*;\ |\ |\ | #; #; MD5 digesting functions #; X|SA-md5\ |\ |\ |AP_MD5_CTX,ap_md5,ap_md5context,ap_md5digest,ap_MD5Final\ ,ap_MD5Init,ap_MD5Update,ap_md5contextTo64\ | S|AP_MD5_CTX\ |This is an opaque structure; you don't need to access any of its \ elements.\ |$* <EM>identifier</EM>\ |SA-md5\ | R|ap_md5\ |char *$*(pool *a, unsigned char *string);\ |\ |SA-md5\ | R|ap_MD5Final\ |void $*(unsigned char digest[16], AP_MD5_CTX *context);\ |\ |SA-md5\ | R|ap_MD5Init\ |void $*(AP_MD5_CTX *context);\ |\ |SA-md5\ | R|ap_MD5Update\ |void $*(AP_MD5_CTX *context, const unsigned char *input, \ unsigned int inputLen);\ |\ |SA-md5\ | R|ap_md5context\ |char *$*(pool *p, AP_MD5_CTX *context);\ |\ |SA-md5\ | R|ap_md5digest\ |char *$*(pool *p, FILE *infile);\ |\ |SA-md5\ | R|ap_md5contextTo64\ |\ |\ |\ | #; #; Mutex routines #; X|SA-mutex\ |\ |\ |mutex,ap_acquire_mutex,ap_create_mutex,ap_destroy_mutex\ ,ap_open_mutex\ | S|mutex\ |This is an opaque structure; you don't need to access any of its \ elements.\ |$* <EM>identifier</EM>\ |\ | R|ap_acquire_mutex\ |int $*(mutex *mutex_id);\ |\ |SA-mutex\ | R|ap_create_mutex\ |mutex *$*(char *name);\ |\ |SA-mutex\ | R|ap_destroy_mutex\ |void $*(mutex *mutex_id);\ |\ |SA-mutex\ | R|ap_open_mutex\ |mutex *$*(char *name);\ |\ |SA-mutex\ | #; #; Stuff for the scoreboard #; X|SA-scoreboard\ |\ |\ |scoreboard,SERVER_DEAD,SERVER_STARTING,SERVER_READY\ ,SERVER_BUSY_READ,SERVER_BUSY_WRITE,SERVER_BUSY_KEEPALIVE\ ,SERVER_BUSY_LOG,SERVER_BUSY_DNS,SERVER_GRACEFUL,SERVER_NUM_STATUS\ ,vtime_t,short_score,global_score,parent_score,START_PREQUEST\ ,STOP_PREQUEST,ap_sync_scoreboard_image,ap_exists_scoreboard_image\ ,ap_scoreboard_image\ | C|SERVER_DEAD\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_STARTING\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_READY\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_BUSY_READ\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_BUSY_WRITE\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_BUSY_KEEPALIVE\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_BUSY_LOG\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_BUSY_DNS\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_GRACEFUL\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|SERVER_NUM_STATUS\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|START_PREQUEST\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | C|STOP_PREQUEST\ |#define $* <EM>value</EM>\ |\ |SA-scoreboard\ | D|ap_scoreboard_image\ |extern scoreboard *$*;\ |\ |SA-scoreboard\ | S|vtime_t\ |typedef unsigned vtime_t;\ |\ |SA-scoreboard\ | #; #; Here comes another bunch of confusing multi-line definitions.. #; S|parent_score\ |typedef struct { \n \ pid_t pid; \n \ #ifdef OPTIMIZE_TIMEOUTS \n \ time_t last_rtime; \n \ vtime_t last_vtime; \n \ #endif \n \ } $*;\ |\ |SA-scoreboard\ | S|global_score\ |typedef struct { \n \ int exit_generation; \n \ } $*;\ |\ |SA-scoreboard\ | S|short_score\ |typedef struct { \n \ #ifdef OPTIMIZE_TIMEOUTS \n \ vtime_t cur_vtime; \n \ unsigned short timeout_len; \n \ #endif \n \ unsigned char status; \n \ #if defined(STATUS) \n \ unsigned long access_count; \n \ unsigned long bytes_served; \n \ unsigned long my_access_count; \n \ unsigned long my_bytes_served; \n \ unsigned long conn_bytes; \n \ unsigned short conn_count; \n \ #if defined(NO_GETTIMEOFDAY) \n \ clock_t start_time; \n \ clock_t stop_time; \n \ #else \n \ struct timeval start_time; \n \ struct timeval stop_time; \n \ #endif \n \ #ifndef NO_TIMES \n \ struct tms times; \n \ #endif \n \ #ifndef OPTIMIZE_TIMEOUTS \n \ time_t last_used; \n \ #endif \n \ char client[32]; \n \ char request[64]; \n \ char vhost[32]; \n \ #endif \n \ } $*;\ |\ |SA-scoreboard\ | S|scoreboard\ |typedef struct { \n \ short_score servers[HARD_SERVER_LIMIT]; \n \ parent_score parent[HARD_SERVER_LIMIT]; \n \ global_score global; \n \ } $*;\ |\ |SA-scoreboard\ | R|ap_sync_scoreboard_image\ |\ |\ |SA-scoreboard\ | R|ap_exists_scoreboard_image\ |\ |\ |SA-scoreboard\ | #; #; Miscellaneous structures #; S|configfile_t\ |typedef struct { \n \ int (*getch) (void *param); \n \ void *(*getstr) (void *buf, size_t bufsiz, void *param); \n \ int (*close) (void *param); \n \ void *param; \n \ const char *name; \n \ unsigned line_number; \n \ } configfile_t;\ |\ |\ | #; #; Reliable piped log stuff #; X|SA-piped-log\ |\ |\ |piped_log,ap_close_piped_log,ap_open_piped_log\ | S|piped_log\ |typedef struct piped_log { \n \ pool *p; \n \ #ifndef NO_RELIABLE_PIPED_LOGS \n \ char *program; \n \ int pid; \n \ int fds[2]; \n \ #else \n \ FILE *write_f; \n \ #endif \n \ } piped_log;\ |\ |SA-piped-log\ | R|ap_close_piped_log\ |void $*(piped_log *plp);\ |\ |SA-piped-log\ | R|ap_open_piped_log\ |piped_log *$*(pool *p, const char *program);\ |\ |SA-piped-log\ | #; S|conn_rec\ |typedef struct conn_rec conn_rec; \n \ struct conn_rec { \n \ pool *pool; \n \ server_rec *server; \n \ server_rec *base_server; \n \ void *vhost_lookup_data; \n \ int child_num; \n \ BUFF *client; \n \ struct sockaddr_in local_addr; \n \ struct sockaddr_in remote_addr; \n \ char *remote_ip; \n \ char *remote_host; \n \ char *remote_logname; \n \ char *user; \n \ char *ap_auth_type; \n \ unsigned aborted:1; \n \ signed int keepalive:2; \n \ unsigned keptalive:1; \n \ signed int double_reverse:2; \n \ int keepalives; \n \ };\ |\ |\ | S|regex_t\ |typedef struct { \n \ int re_magic; \n \ size_t re_nsub; \n \ const char *re_endp; \n \ struct re_guts *re_g; \n \ } regex_t;\ |\ |\ | S|regmatch_t\ |\ |\ |\ | S|request_rec\ |typedef struct request_rec request_rec; \n \ struct request_rec { \n \ pool *pool; \n \ conn_rec *connection; \n \ server_rec *server; \n \ request_rec *next; \n \ request_rec *prev; \n \ request_rec *main; \n \ char *the_request; \n \ int assbackwards; \n \ int proxyreq; \n \ int header_only; \n \ char *protocol; \n \ int proto_num; \n \ char *hostname; \n \ time_t request_time; \n \ char *status_line; \n \ int status; \n \ char *method; \n \ int method_number; \n \ int allowed; \n \ int sent_bodyct; \n \ long bytes_sent; \n \ time_t mtime; \n \ int chunked; \n \ int byterange; \n \ char *boundary; \n \ char *range; \n \ long clength; \n \ long remaining; \n \ long read_length; \n \ int read_body; \n \ int read_chunked; \n \ table *headers_in; \n \ table *headers_out; \n \ table *err_headers_out; \n \ table *subprocess_env; \n \ table *notes; \n \ char *content_type; \n \ char *handler; \n \ char *content_encoding; \n \ char *content_language; \n \ array_header *content_languages; \n \ int no_cache; \n \ int no_local_copy; \n \ char *unparsed_uri; \n \ char *uri; \n \ char *filename; \n \ char *path_info; \n \ char *args; \n \ struct stat finfo; \n \ uri_components parsed_uri; \n \ void *per_dir_config; \n \ void *request_config; \n \ const struct htaccess_result *htaccess; \n \ };\ |\ |\ | S|server_rec\ |\ |\ |\ | S|BUFF\ |typedef struct buff_struct $*; \n \ struct buff_struct { \n \ int flags; \n \ unsigned char *inptr; \n \ int incnt; \n \ int outchunk; \n \ int outcnt; \n \ unsigned char *inbase; \n \ unsigned char *outbase; \n \ int bufsiz; \n \ void (*error) ($* *fb, int op, void *data); \n \ void *error_data; \n \ long int bytes_sent; \n \ pool *pool; \n \ int fd; \n \ int fd_in; \n \ void *t_handle; \n \ #ifdef B_SFIO \n \ Sfio_t *sf_in; \n \ Sfio_t *sf_out; \n \ #endif \n \ };\ |\ |\ | S|cmd_parms\ |typedef struct { \n \ void *info; \n \ int override; \n \ int limited; \n \ configfile_t *config_file; \n \ pool *pool; \n \ struct pool *temp_pool; \n \ server_rec *server; \n \ char *path; \n \ const command_rec *cmd; \n \ const char *end_token; \n \ } $*;\ |\ |\ | S|command_rec\ |typedef struct $* {\n \ const char *name;\n \ const char *(*func) ();\n \ void *cmd_data;\n \ int req_override;\n \ enum cmd_how args_how;\n \ const char *errmsg;\n \ } $*;\ |\ |\ | #; #; Directive overrides #; X|SA-overrides\ |\ |\ |ACCESS_CONF,OR_AUTHCFG,OR_FILEINFO,OR_INDEXES,OR_LIMIT\ ,OR_OPTIONS,RSRC_CONF\ | C|RSRC_CONF\ |#define $* <EM>value</EM>\ |\ |SA-overrides\ | C|ACCESS_CONF\ |#define $* <EM>value</EM>\ |\ |SA-overrides\ | C|OR_AUTHCFG\ |#define $* <EM>value</EM>\ |\ |SA-overrides\ | C|OR_LIMIT\ |#define $* <EM>value</EM>\ |\ |SA-overrides\ | C|OR_OPTIONS\ |#define $* <EM>value</EM>\ |\ |SA-overrides\ | C|OR_FILEINFO\ |#define $* <EM>value</EM>\ |\ |SA-overrides\ | C|OR_INDEXES\ |#define $* <EM>value</EM>\ |\ |SA-overrides\ | #; #; Tables.. #; X|SA-tables\ |\ |\ |table,ap_clear_table,ap_copy_table,ap_make_table\ ,ap_overlay_tables,ap_table_add,ap_table_addn,ap_table_do\ ,ap_table_get,ap_table_merge,ap_table_mergen,ap_table_set\ ,ap_table_setn,ap_table_unset\ | S|table\ |typedef struct $* {<EM>opaque-structure</EM>};\ |\ |SA-tables\ | R|ap_clear_table\ |void $*(table *t);\ |\ |SA-tables\ | R|ap_copy_table\ |table *$*(pool *p, const table *t);\ |\ |SA-tables\ | R|ap_make_table\ |table *$*(pool *p, int nelts);\ |\ |SA-tables\ | R|ap_overlay_tables\ |table *$*(pool *p, const table *overlay, const table *base);\ |\ |SA-tables\ | R|ap_table_add\ |void $*(table *t, const char *key, const char *val);\ |\ |SA-tables\ | R|ap_table_addn\ |void $*(table *t, const char *key, const char *val);\ |\ |SA-tables\ | #; #; Here's an example of multiline definition with proper indenting. #; R|ap_table_do\ |void $*(int (*comp) (void *d, const char *key, const char *val), \n \ void *rec, const table *t, ...);\ |\ |SA-tables\ | R|ap_table_get\ |\ |\ |SA-tables\ | R|ap_table_merge\ |\ |\ |SA-tables\ | R|ap_table_mergen\ |\ |\ |SA-tables\ | R|ap_table_set\ |\ |\ |SA-tables\ | R|ap_table_setn\ |\ |\ |SA-tables\ | R|ap_table_unset\ |\ |\ |SA-tables\ | #; #; Arrays.. #; X|SA-array\ |\ |\ |array_header,ap_array_cat,ap_append_arrays,ap_copy_array\ ,ap_copy_array_hdr,ap_make_array,ap_push_array\ | S|array_header\ |typedef struct { \n \ pool *pool; \n \ int elt_size; \n \ int nelts; \n \ int nalloc; \n \ char *elts; \n \ } array_header;\ |\ |SA-array\ | R|ap_array_cat\ |void $*(array_header *dst, const array_header *src);\ |\ |SA-array\ | R|ap_copy_array\ |array_header *$*(pool *p, const array_header *src);\ |\ |SA-array\ | R|ap_copy_array_hdr\ |array_header *$*(pool *p, const array_header *src);\ |\ |SA-array\ | R|ap_make_array\ |array_header *$*(pool *p, int nelts, int elt_size);\ |\ |SA-array\ | R|ap_push_array\ |void *$*(array_header *a);\ |\ |SA-array\ | #; #; Now the items relating to pools #; X|SA-pool\ |\ |\ |pool,ap_bytes_in_pool,ap_clear_pool,ap_destroy_pool,ap_find_pool\ ,ap_pool_is_ancestor,ap_pool_join,ap_make_sub_pool,ap_pstrcat,ap_palloc\ ,ap_pcalloc,ap_pclosedir,ap_pclosef,ap_pclosesocket,ap_pduphostent\ ,ap_pfclose,ap_pfdopen,ap_pfopen,ap_pgethostbyname,ap_popendir\ ,ap_popenf,ap_pregcomp,ap_pregfree,ap_psocket,ap_pstrdup,ap_pstrndup\ | S|pool\ |[struct] pool <EM>opaque-structure</EM>\ |pool *p; \ \nchar *foo; \ \nfoo = ap_pstrcat(p, "string 1", "string 2", NULL);\ |SA-pool\ | R|ap_bytes_in_pool\ |\ |\ |SA-pool\ | R|ap_clear_pool\ |\ |\ |SA-pool\ | R|ap_find_pool\ |\ |\ |SA-pool\ | R|ap_pool_is_ancestor\ |\ |\ |SA-pool\ | R|ap_pool_join\ |\ |\ |SA-pool\ | R|ap_make_sub_pool\ |pool *$*(pool *p);\ |\ |SA-pool\ |dict-ap_make_sub_pool.html #; Hey! A real docco file!! R|ap_destroy_pool\ |void $*(pool *p);\ |\ |SA-pool\ |dict-ap_destroy_pool.html R|ap_pstrcat\ |char *$*(struct pool *p, ...);\ |\ |SA-pool\ | R|ap_palloc\ |void *$*(struct pool *p, int nbytes);\ |\ |SA-pool\ | R|ap_pcalloc\ |void *$*(struct pool *p, int nbytes);\ |\ |SA-pool\ | R|ap_pclosedir\ |void $*(pool *p, DIR * d);\ |\ |SA-pool\ | R|ap_pclosef\ |int $*(struct pool *p, int fd);\ |\ |SA-pool\ | R|ap_pclosesocket\ |int $*(pool *p, int sock);\ |\ |SA-pool\ | R|ap_pduphostent\ |struct hostent *$*(pool *p, struct hostent *hp);\ |\ |SA-pool\ | R|ap_pfclose\ |int $*(struct pool *p, FILE *f);\ |\ |SA-pool\ | R|ap_pfdopen\ |FILE *$*(struct pool *p, int fd, const char *fmode);\ |\ |SA-pool\ | R|ap_pfopen\ |FILE *$*(struct pool *p, const char *name, const char *fmode);\ |\ |SA-pool\ | R|ap_pgethostbyname\ |struct hostent *$*(pool *p, const char *hostname);\ |\ |SA-pool\ | R|ap_popendir\ |DIR *$*(pool *p, const char *name);\ |\ |SA-pool\ | R|ap_popenf\ |int $*(struct pool *p, const char *name, int flg, int mode);\ |\ |SA-pool\ | R|ap_pregcomp\ |regex_t *$*(pool *p, const char *pattern, int cflags);\ |\ |SA-pool\ | R|ap_pregfree\ |void $*(pool *p, regex_t *reg);\ |\ |SA-pool\ | R|ap_psocket\ |int $*(pool *p, int i, int j, int k);\ |\ |SA-pool\ | R|ap_pstrdup\ |char *$*(struct pool *p, const char *s);\ |\ |SA-pool\ | R|ap_pstrndup\ |char *$*(struct pool *p, const char *s, int n);\ |\ |SA-pool\ | #; #; Incomplete definitions! #; R|ap_append_arrays\ |array_header *$*(pool *p, const array_header *a, const array_header *b);\ |\ |SA-array\ | R|ap_pregsub\ |char *$*(pool *p, const char *input, const char *source, size_t nmatch, \ regmatch_t pmatch[]);\ |\ |SA-pool\ | R|ap_vformatter\ |int $*(int (*flush_func)(ap_vformatter_buff *f), ap_vformatter_buff *b, \ const char *fmt, va_list ap);\ |\ |\ | S|ap_vformatter_buff\ |typedef struct {\n\ char *curpos;\n\ char *endpos;\n\ } ap_vformatter_buff;\ |\ |\ | #; #; Miscellany (for now) #; S|uri_components\ |typedef struct { \n \ char *scheme; \n \ char *hostinfo; \n \ char *user; \n \ char *password; \n \ char *hostname; \n \ char *port_str; \n \ char *path; \n \ char *query; \n \ char *fragment; \n \ struct hostent *hostent; \n \ unsigned short port; \n \ unsigned is_initialized:1; \n \ unsigned dns_looked_up:1; \n \ unsigned dns_resolved:1; \n \ } uri_components; \ |\ |\ | X|SA-dirdata\ |\ |\ |cmd_how,RAW_ARGS,TAKE1,TAKE2,ITERATE,ITERATE2,FLAG,NO_ARGS,TAKE12\ ,TAKE3,TAKE23,TAKE123,TAKE13\ | C|cmd_how\ |enum cmd_how { \n \ RAW_ARGS, \n \ TAKE1, \n \ TAKE2, \n \ ITERATE, \n \ ITERATE2, \n \ FLAG, \n \ NO_ARGS, \n \ TAKE12, \n \ TAKE3, \n \ TAKE23, \n \ TAKE123, \n \ TAKE13 \n \ }; \ |\ |SA-dirdata\ | C|RAW_ARGS\ |<EM>See</EM> cmd_how.\ |static const command_rec autoindex_cmds[] =\n\ {\n\ :\n\ {"IndexOptions", add_opts, NULL, DIR_CMD_PERMS, RAW_ARGS,\n\ "one or more index options"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|TAKE1\ |<EM>See</EM> cmd_how.\ |static const command_rec autoindex_cmds[] =\n\ {\n\ :\n\ {"HeaderName", add_header, NULL, DIR_CMD_PERMS, TAKE1, "a filename"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|TAKE2\ |<EM>See</EM> cmd_how.\ |static const command_rec action_cmds[] =\n\ {\n\ {"Action", add_action, NULL, OR_FILEINFO, TAKE2,\n\ "a media type followed by a script name"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|ITERATE\ |<EM>See</EM> cmd_how.\ |static const command_rec autoindex_cmds[] =\n\ {\n\ :\n\ {"IndexIgnore", add_ignore, NULL, DIR_CMD_PERMS, ITERATE,\n\ "one or more file extensions"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|ITERATE2\ |<EM>See</EM> cmd_how.\ |static const command_rec autoindex_cmds[] =\n\ {\n\ {"AddIcon", add_icon, BY_PATH, DIR_CMD_PERMS, ITERATE2,\n\ "an icon URL followed by one or more filenames"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|FLAG\ |<EM>See</EM> cmd_how.\ |static const command_rec autoindex_cmds[] =\n\ {\n\ :\n\ {"FancyIndexing", fancy_indexing, NULL, DIR_CMD_PERMS, FLAG,\n\ "Limited to 'on' or 'off' (superseded by IndexOptions FancyIndexing)"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|NO_ARGS\ |<EM>See</EM> cmd_how.\ |static const command_rec negotiation_cmds[] =\n\ {\n\ {"CacheNegotiatedDocs", cache_negotiated_docs, NULL, RSRC_CONF, NO_ARGS,\n\ "no arguments (either present or absent)"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|TAKE12\ |<EM>See</EM> cmd_how.\ |static const command_rec config_log_cmds[] =\n\ {\n\ :\n\ {"LogFormat", log_format, NULL, RSRC_CONF, TAKE12,\n\ "a log format string (see docs) and an optional format name"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|TAKE3\ |<EM>See</EM> cmd_how.\ |\ |SA-dirdata\ | C|TAKE23\ |<EM>See</EM> cmd_how.\ |static const command_rec headers_cmds[] =\n\ {\n\ {"Header", header_cmd, NULL, OR_FILEINFO, TAKE23,\n\ "an action, header and value"},\n\ :\n\ {NULL}\n\ };\ |SA-dirdata\ | C|TAKE123\ |<EM>See</EM> cmd_how.\ |\ |SA-dirdata\ | C|TAKE13\ |<EM>See</EM> cmd_how.\ |\ |SA-dirdata\ | #; R|ap_add_cgi_vars\ |void $*(request_rec *r);\ |\ |\ | R|ap_add_common_vars\ |void $*(request_rec *r);\ |\ |\ | R|ap_add_per_dir_conf\ |void $*(server_rec *s, void *dir_config);\ |\ |\ | R|ap_cpystrn\ |char *$*(char *buf, const char *str, size_t numbytes);\ |\ |\ |dict-ap_cpystrn.html #; Zut! Another doc file! R|ap_bprintf\ |int $*(BUFF *fb, const char *fmt, ...);\ |\ |\ | R|ap_os_canonical_filename\ |char *$*(pool *p, const char *file);\ |\ |\ | R|ap_escape_quotes\ |char *$*(pool *p, const char *str);\ |\ |\ | R|ap_log_error_old\ |void $*(const char *err, server_rec *s);\ |\ |\ | R|ap_parse_hostinfo_components\ |int $*(pool *p, const char *hostinfo, uri_components *uptr);\ |\ |\ | R|ap_psprintf\ |char *$*(struct pool *p, const char *fmt, ...);\ |\ |\ | R|ap_pvsprintf\ |char *$*(struct pool *p, const char *fmt, va_list);\ |\ |\ | R|ap_snprintf\ |int $*(char *buf, size_t nbytes, const char *fmt, ...);\ |\ |\ | R|ap_add_per_url_conf\ |void $*(server_rec *s, void *url_config);\ |\ |\ | R|ap_allow_options\ |int $*(request_rec *r);\ |\ |\ | R|ap_allow_overrides\ |int $*(request_rec *r);\ |\ |\ | R|ap_vsnprintf\ |int $*(char *buf, size_t numbytes, const char *fmt, va_list ap);\ |\ |\ | R|ap_auth_name\ |char *$*(request_rec *r);\ |\ |\ | R|ap_auth_type\ |char *$*(request_rec *r);\ |\ |\ | R|ap_basic_http_header\ |void $*(request_rec *r);\ |\ |\ | R|ap_bclose\ |int $*(BUFF *fb);\ |\ |\ | R|ap_bcreate\ |BUFF *$*(pool *p, int flags);\ |\ |\ | R|ap_bfilbuf\ |int $*(BUFF *fb);\ |\ |\ | R|ap_bfileno\ |int $*(BUFF *fb, int direction);\ |\ |\ | R|ap_bflsbuf\ |int $*(int c, BUFF *fb);\ |\ |\ | R|ap_bflush\ |int $*(BUFF *fb);\ |\ |\ | R|ap_bgetopt\ |int $*(BUFF *fb, int optname, void *optval);\ |\ |\ | R|ap_bgets\ |int $*(char *s, int n, BUFF *fb);\ |\ |\ | R|ap_bhalfduplex\ |void $*(BUFF *fb);\ |\ |\ | R|ap_block_alarms\ |void $*(void);\ |\ |\ | R|ap_blookc\ |int $*(char *buff, BUFF *fb);\ |\ |\ | R|ap_bnonblock\ |int $*(BUFF *fb, int direction);\ |\ |\ | R|ap_bonerror\ |void $*(BUFF *fb, void (*error) (BUFF *b, int, void *), void *data);\ |\ |\ | R|ap_bpushfd\ |void $*(BUFF *fb, int fd_in, int fd_out);\ |\ |\ | R|ap_bputs\ |int $*(const char *x, BUFF *fb);\ |\ |\ | R|ap_bread\ |int $*(BUFF *fb, void *buf, int nbyte);\ |\ |\ | R|ap_bsetflag\ |int $*(BUFF *fb, int flag, int value);\ |\ |\ | R|ap_bsetopt\ |int $*(BUFF *fb, int optname, const void *optval);\ |\ |\ | R|ap_bskiplf\ |int $*(BUFF *fb);\ |\ |\ | R|ap_bvputs\ |int $*(BUFF *fb, ...);\ |\ |\ | R|ap_bwrite\ |int $*(BUFF *fb, const void *buf, int nbyte);\ |\ |\ | R|ap_bytes_in_free_blocks\ |long $*(void);\ |\ |\ | R|ap_call_exec\ |int $*(request_rec *r, char *argv0, char **env, int shellcmd);\ |\ |\ | R|ap_can_exec\ |int $*(const struct stat *fstat);\ |\ |\ | R|ap_cfg_closefile\ |int $*(configfile_t *fp);\ |\ |\ | R|ap_cfg_getc\ |int $*(configfile_t *cfp);\ |\ |\ | R|ap_cfg_getline\ |int $*(char *buf, size_t bufsize, configfile_t *cfp);\ |\ |\ | R|ap_chdir_file\ |void $*(const char *file);\ |\ |\ | R|ap_check_access\ |\ |\ |\ | R|ap_check_alarm\ |int $*(void);\ |\ |\ | R|ap_check_auth\ |\ |\ |\ | R|ap_check_cmd_context\ |const char *$*(cmd_parms *cmd, unsigned forbidden);\ |\ |\ | R|ap_check_user_id\ |\ |\ |\ | R|ap_checkmask\ |int $*(const char *data, const char *mask);\ |\ |\ | R|ap_child_exit_modules\ |\ |\ |\ | R|ap_child_init_modules\ |\ |\ |\ | R|ap_child_terminate\ |void $*(request_rec *r);\ |\ |\ | R|ap_cleanup_for_exec\ |void $*(void);\ |\ |\ | R|ap_clear_module_list\ |void $*(void);\ |\ |\ | R|ap_construct_server\ |char *$*(pool *p, const char *hostname, unsigned port, \ const request_rec *r);\ |\ |\ | R|ap_construct_url\ |char *$*(pool *p, const char *uri, const request_rec *r);\ |\ |\ | R|ap_core_reorder_directories\ |\ |\ |\ | R|ap_count_dirs\ |int $*(const char *path);\ |\ |\ | R|ap_create_environment\ |char **$*(pool *p, table *t);\ |\ |\ | R|ap_create_per_dir_config\ |void *$*(pool *p);\ |\ |\ | R|ap_create_request_config\ |\ |\ |\ | R|ap_default_port_for_request\ |unsigned short $*(const request_rec *r);\ |\ |\ | R|ap_default_port_for_scheme\ |unsigned short $*(const char *scheme_str);\ |\ |\ | R|ap_default_type\ |char *$*(request_req *r);\ |\ |\ | R|ap_destroy_sub_req\ |void $*(request_rec *r);\ |\ |\ | R|ap_die\ |\ |\ |\ | R|ap_discard_request_body\ |int $*(request_rec *r);\ |\ |\ | R|ap_document_root\ |char *$*(request_rec *r);\ |\ |\ | R|ap_each_byterange\ |int $*(request_rec *r, long *offset, long *length);\ |\ |\ | R|ap_error_log2stderr\ |void $*(server_rec *s);\ |\ |\ | R|ap_escape_html\ |char *$*(pool *p, const char *s);\ |\ |\ | R|ap_escape_path_segment\ |char *$*(pool *p, const char *s);\ |\ |\ | R|ap_escape_shell_cmd\ |char *$*(pool *p, const char *s);\ |\ |\ | R|ap_finalize_request_protocol\ |\ |\ |\ | R|ap_finalize_sub_req_protocol\ |\ |\ |\ | R|ap_find_command\ |const command_rec *$*(const char *name, const command_rec *cmds);\ |\ |\ | R|ap_find_command_in_modules\ |const command_rec *$*(const char *cmd_name, module **m);\ |\ |\ | R|ap_find_last_token\ |int $*(pool *p, const char *line, const char *tok);\ |\ |\ | R|ap_find_linked_module\ |module *$*(const char *name);\ |\ |\ | R|ap_find_module_name\ |const char *$*(module *m);\ |\ |\ | R|ap_find_path_info\ |int $*(const char *uri, const char *path_info);\ |\ |\ | R|ap_find_token\ |int $*(pool *p, const char *line, const char *tok);\ |\ |\ | R|ap_find_types\ |\ |\ |\ | R|ap_fini_vhost_config\ |\ |\ |\ | R|ap_fnmatch\ |int $*(const char *s1, const char *s2, int n);\ |\ |\ | R|ap_force_library_loading\ |\ |\ |\ | R|ap_get_basic_auth_pw\ |int $*(request_rec *r, char **pw);\ |\ |\ | R|ap_get_client_block\ |long $*(request_rec *r, char *buffer, int bufsiz);\ |\ |\ | R|ap_get_gmtoff\ |struct tm *$*(int *tz);\ |\ |\ | R|ap_get_local_host\ |\ |\ |\ | R|ap_get_module_config\ |void *$*(void *conf_vector, module *m);\ |\ |\ | R|ap_get_remote_host\ |const char *$*(conn_rec *conn, void *dir_config, int type);\ |\ |\ | R|ap_get_remote_logname\ |const char *$*(request_rec *r);\ |\ |\ | R|ap_get_server_port\ |unsigned $*(const *r);\ |\ |\ | R|ap_get_time\ |char *$*(void);\ |\ |\ | R|ap_get_token\ |char *$*(pool *p, char **accept_line, int accept_white);\ |\ |\ | R|ap_get_virthost_addr\ |\ |\ |\ | R|ap_getparents\ |void $*(char *name);\ |\ |\ | R|ap_getword\ |char *$*(pool *p, const char **line, char stop);\ |\ |\ | R|ap_getword_conf\ |char *$*(pool *p, const char **line);\ |\ |\ | R|ap_getword_conf_nc\ |char *$*(pool *p, char **line);\ |\ |\ | R|ap_getword_nc\ |char *$*(pool *p, char **line, char stop);\ |\ |\ | R|ap_getword_nulls\ |char *$*(pool *p, const char **line, char stop);\ |\ |\ | R|ap_getword_nulls_nc\ |char *$*(pool *p, char **line, char stop);\ |\ |\ | R|ap_getword_white\ |char *$*(pool *p, const char **line);\ |\ |\ | R|ap_getword_white_nc\ |char *$*(pool *p, char **line);\ |\ |\ | R|ap_gm_timestr_822\ |char *$*(pool *p, time_t t);\ |\ |\ | R|ap_gname2id\ |gid_t $*(const char *name);\ |\ |\ | R|ap_handle_command\ |const char *$*(cmd_parms *parms, void *config, const char *l);\ |\ |\ | R|ap_hard_timeout\ |void $*(char *reason, request_rec *r);\ |\ |\ | R|ap_header_parse\ |\ |\ |\ | R|ap_ht_time\ |char *$*(pool *p, time_t t, const char *fmt, int gmt);\ |\ |\ | R|ap_ind\ |int $*(const char *str, char c);\ |\ |\ | R|ap_index_of_response\ |int $*(int status);\ |\ |\ | R|ap_init_alloc\ |\ |\ |\ | R|ap_init_modules\ |\ |\ |\ | R|ap_init_vhost_config\ |\ |\ |\ | R|ap_init_virtual_host\ |const char *$*(pool *p, const char *hostname, server_rec *main_server, \ server_rec **);\ |\ |\ | R|ap_internal_redirect\ |void $*(const char *new_uri, request_rec *r);\ |\ |\ | R|ap_internal_redirect_handler\ |void $*(const char *new_uri, request_rec *r);\ |\ |\ | R|ap_invoke_handler\ |\ |\ |\ | R|ap_is_directory\ |int $*(const char *name);\ |\ |\ | R|ap_is_fnmatch\ |int $*(const char *str);\ |\ |\ | R|ap_is_initial_req\ |int $*(request_rec *r);\ |\ |\ | R|ap_is_matchexp\ |int $*(const char *str);\ |\ |\ | R|ap_is_url\ |int $*(const char *u);\ |\ |\ | R|ap_keepalive_timeout\ |\ |\ |\ | R|ap_kill_cleanup\ |void $*(pool *p, void *data, void (*plain_cleanup) (void *));\ |\ |\ | R|ap_kill_cleanups_for_fd\ |void $*(pool *p, int fd);\ |\ |\ | R|ap_kill_cleanups_for_socket\ |void $*(pool *p, int sock);\ |\ |\ | R|ap_kill_timeout\ |void $*(request_rec *r);\ |\ |\ | R|ap_limit_section\ |const char *$*(R (const char *szExp, const char *szFile, int nLine);\ |\ |\ | R|ap_log_error\ |void $*(const char *file, int line, int level, const server_rec *s, \ const char *fmt, ...) __attribute__((format(printf,5,6)));\ |\ |\ | R|ap_log_pid\ |\ |\ |\ | R|ap_log_printf\ |void $*(const server_rec *s, const char *fmt, ...);\ |\ |\ | R|ap_log_reason\ |void $*(const char *reason, const char *fname, request_rec *r);\ |\ |\ | R|ap_log_transaction\ |\ |\ |\ | R|ap_log_unixerr\ |void $*(const char *routine, const char *file, const char *msg, \ server_rec *s);\ |\ |\ | R|ap_make_dirstr\ |char *$*(pool *a, const char *s, int n);\ |\ |\ | R|ap_make_dirstr_parent\ |char *$*(pool *p, const char *s);\ |\ |\ | R|ap_make_dirstr_prefix\ |char *$*(char *d, const char *s, int n);\ |\ |\ | R|ap_make_full_path\ |char *$*(pool *a, const char *dir, const char *f);\ |\ |\ | R|ap_matches_request_vhost\ |int $*(request_rec *r, const char *host, unsigned port);\ |\ |\ | R|ap_meets_conditions\ |int $*(request_rec *r);\ |\ |\ | R|ap_merge_per_dir_configs\ |\ |\ |\ | R|ap_no2slash\ |void $*(char *name);\ |\ |\ | R|ap_note_auth_failure\ |void $*(request_rec *r);\ |\ |\ | R|ap_note_basic_auth_failure\ |void $*(request_rec *r);\ |\ |\ | R|ap_note_cleanups_for_fd\ |void $*(pool *p, int fd);\ |\ |\ | R|ap_note_cleanups_for_file\ |void $*(pool *p, FILE *f);\ |\ |\ | R|ap_note_cleanups_for_socket\ |void $*(pool *p, int sock);\ |\ |\ | R|ap_note_digest_auth_failure\ |void $*(request_rec *r);\ |\ |\ | R|ap_note_subprocess\ |void $*(pool *p, int pid, enum kill_conditions how);\ |\ |\ | R|ap_null_cleanup\ |void $*(void *data);\ |\ |\ | R|ap_open_logs\ |\ |\ |\ | R|ap_escape_path\ |char *$*(pool *p, const char *path, int partial);\ |\ |\ | R|ap_os_is_path_absolute\ |\ |\ |\ | R|ap_parseHTTPdate\ |time_t $*(const char *date);\ |\ |\ | R|ap_parse_htaccess\ |\ |\ |\ | R|ap_parse_uri\ |void $*(request_rec *r, const char *uri);\ |\ |\ | R|ap_parse_uri_components\ |int $*(pool *p, const char *uri, uri_components *uptr);\ |\ |\ | R|ap_parse_vhost_addrs\ |\ |\ |\ | R|ap_pcfg_open_custom\ |configfile_t *$*(pool *p, const char *descr, void *param, \ int(*getc_func)(void*), \n \ void *(*gets_func) \ (void *buf, size_t bufsiz, void *param), \ int (*close_func) (void *a));\ |\ |\ | R|ap_pcfg_openfile\ |configfile_t *$*(pool *p, const char *name);\ |\ |\ | R|ap_process_request\ |\ |\ |\ | R|ap_process_resource_config\ |\ |\ |\ | R|ap_psignature\ |const char *$*(const char *prefix, request_rec *r);\ |\ |\ | R|ap_rationalize_mtime\ |time_t $*(request_rec *r, time_t mtime);\ |\ |\ | R|ap_read_config\ |\ |\ |\ | R|ap_read_request\ |\ |\ |\ | R|ap_register_cleanup\ |void $*(pool *p, void *data, void (*plain_cleanup) (void *), \ void (*child_cleanup) (void *));\ |\ |\ | R|ap_register_other_child\ |void $*(int pid, void (*maintenance) \ (int reason, void *data, int status), void *data, int write_fd);\ |\ |\ | R|ap_remove_module\ |void $*(module *m);\ |\ |\ | R|ap_requires\ |array_header *$*(request_rec *r);\ |\ |\ | R|ap_reset_timeout\ |void $*(request_rec *r);\ |\ |\ | R|ap_response_code_string\ |\ |\ |\ | R|ap_rfc1413\ |\ |\ |\ | R|ap_rflush\ |int $*(request_rec *r);\ |\ |\ | R|ap_rind\ |int $*(const char *str, char c);\ |\ |\ | R|ap_rprintf\ |int $*(request_rec *r, const char *fmt, ...);\ |\ |\ | R|ap_rputc\ |int $*(int c, request_rec *r);\ |\ |\ | R|ap_rputs\ |int $*(const char *str, request_rec *r);\ |\ |\ | R|ap_run_cleanup\ |void $*(pool *p, void *data, void (*cleanup) (void *));\ |\ |\ | R|ap_run_fixups\ |\ |\ |\ | R|ap_run_post_read_request\ |\ |\ |\ | R|ap_run_sub_req\ |int $*(request_rec *r);\ |\ |\ | R|ap_rvputs\ |int $*(request_rec *r, ...);\ |\ |\ | R|ap_rwrite\ |int $*(const void *buf, int nbyte, request_rec *r);\ |\ |\ | R|ap_satisfies\ |int $*(request_rec *r);\ |\ |\ | R|ap_scan_script_header_err\ |int $*(request_rec *r, FILE *f, char *buffer);\ |\ |\ | R|ap_scan_script_header_err_buff\ |int $*(request_rec *r, BUFF *f, char *buffer);\ |\ |\ | R|ap_send_error_response\ |\ |\ |\ | R|ap_send_fb\ |long $*(BUFF *f, request_rec *r);\ |\ |\ | R|ap_send_fb_length\ |long $*(BUFF *f, request_rec *r, long length);\ |\ |\ | R|ap_send_fd\ |long $*(FILE *f, request_rec *r);\ |\ |\ | R|ap_send_fd_length\ |long $*(FILE *f, request_rec *r, long length);\ |\ |\ | R|ap_send_header_field\ |int $*(request_rec *r, const char *fieldname, const char *fieldval);\ |\ |\ | R|ap_send_http_header\ |void $*(request_rec *r);\ |\ |\ | R|ap_send_http_options\ |\ |\ |\ | R|ap_send_http_trace\ |\ |\ |\ | R|ap_send_mmap\ |size_t $*(void *mm, request_rec *r, size_t offset, size_t length);\ |\ |\ | R|ap_send_size\ |void $*(size_t size, request_rec *r);\ |\ |\ | R|ap_server_root_relative\ |char *$*(pool *p, char *fname);\ |\ |\ | R|ap_set_byterange\ |int $*(request_rec *r);\ |\ |\ | R|ap_set_callback_and_alarm\ |\ |\ |\ | R|ap_set_content_length\ |int $*(request_rec *r, long length);\ |\ |\ | R|ap_set_etag\ |void $*(request_rec *r);\ |\ |\ | R|ap_set_file_slot\ |const char *$*(cmd_parms *cmd, char *s1, char *s2);\ |\ |\ | R|ap_set_flag_slot\ |const char *$*(cmd_parms *cmd, char *s1, int flag);\ |\ |\ | R|ap_set_keepalive\ |int $*(request_rec *r);\ |\ |\ | R|ap_set_last_modified\ |void $*(request_rec *r);\ |\ |\ | R|ap_set_module_config\ |void $*(void *conf_vector, module *m, void *val);\ |\ |\ | R|ap_set_name_virtual_host\ |\ |\ |\ | R|ap_set_string_slot\ |const char *$*(cmd_parms *cmd, char *s1, char *s2);\ |\ |\ | R|ap_set_string_slot_lower\ |const char *$*(cmd_parms *cmd, char *s1, char *s2);\ |\ |\ | R|ap_set_sub_req_protocol\ |\ |\ |\ | R|ap_setup_client_block\ |int $*(request_rec *r, int read_policy);\ |\ |\ | R|ap_setup_prelinked_modules\ |\ |\ |\ | R|ap_should_client_block\ |int $*(request_rec *r);\ |\ |\ |\ R|ap_show_directives\ |\ |\ |\ | R|ap_show_modules\ |\ |\ |\ | R|ap_soft_timeout\ |void $*(char *str, request_rec *r);\ |\ |\ | R|ap_some_auth_required\ |int $*(request_rec *r);\ |\ |\ | R|ap_spawn_child_err\ |int $*(pool *p, int (*)(void *), void *, enum kill_conditions, \ FILE **pipe_in, FILE **pipe_out, FILE **pipe_err);\ |\ |\ | R|ap_spawn_child_err_buff\ |int $*(pool *p, int (*)(void *), void *, enum kill_conditions, \n \ BUFF **pipe_in, BUFF **pipe_out, BUFF **pipe_err);\ |\ |\ | R|ap_srm_command_loop\ |const char *$*(cmd_parms *parms, void *config);\ |\ |\ | R|ap_start_restart\ |\ |\ |\ | R|ap_start_shutdown\ |\ |\ |\ | R|ap_str_tolower\ |void $*(char *str);\ |\ |\ | R|ap_strcasecmp_match\ |int $*(const char *str, const char *exp);\ |\ |\ | R|ap_strcmp_match\ |int $*(const char *str, const char *exp);\ |\ |\ | R|ap_sub_req_lookup_file\ |request_rec *$*(const char *new_file, const request_rec *r);\ |\ |\ | R|ap_sub_req_lookup_uri\ |request_rec *$*(const char *new_file, const request_rec *r);\ |\ |\ | R|ap_time_process_request\ |\ |\ |\ | R|ap_tm2sec\ |time_t $*(const struct tm *t);\ |\ |\ | R|ap_translate_name\ |\ |\ |\ | R|ap_uname2id\ |uid_t $*(const char *name);\ |\ |\ | R|ap_unblock_alarms\ |void $*(void);\ |\ |\ | R|ap_unescape_url\ |int $*(char *url);\ |\ |\ | R|ap_unparse_uri_components\ |char *$*(pool *p, const uri_components *uptr, unsigned flags);\ |\ |\ | R|ap_unregister_other_child\ |void $*(void *data);\ |\ |\ | R|ap_update_child_status\ |\ |\ |\ | R|ap_update_mtime\ |time_t $*(request_rec *r, time_t dependency_mtime);\ |\ |\ | R|ap_update_vhost_from_headers\ |\ |\ |\ | R|ap_update_vhost_given_ip\ |\ |\ |\ | R|ap_util_init\ |\ |\ |\ | R|ap_util_uri_init\ |\ |\ |\ | R|ap_uudecode\ |char *$*(pool *p, const char *str);\ |\ |\ | R|ap_vbprintf\ |int $*(BUFF *fb, const char *fmt, va_list vlist);\ |\ |\ | #; #; More miscellaneous contant definitions #; #; #; Miscellaneous constants #; C|MAX_STRING_LEN\ |#define $* <EM>numbytes</EM>\ |char random_string[$*];\ |\ | C|SERVER_VERSION\ |#define $* <EM>string</EM>\ |Deprecated; use ap_get_server_version() instead.\ |\ | C|HARD_SERVER_LIMIT\ |#define $* <EM>value</EM>\ |\ |\ | C|kill_conditions\ |enum $* { \n \ kill_never, \n \ kill_always, \n \ kill_after_timeout, \n \ just_wait, \n \ kill_only_once \n \ };\ |\ |\ | C|MODULE_MAGIC_NUMBER\ |#define $* <EM>monotonically-increasing-value</EM>\ |\ |\ | C|SERVER_SUPPORT\ |#define $* "http://www.apache.org/"\ |\ |\ | #; #; The values that module hooks can return. These have special meanings; #; real failures are indicated by using the HTTP_xxx values mentioned #; elsewhere. #; X|SA-dirstat\ |\ |\ |OK,DECLINED,DONE\ | C|OK\ |#define $* <EM>value</EM>\ |\ |SA-dirstat\ | C|DECLINED\ |#define $* <EM>value</EM>\ |\ |SA-dirstat\ | C|DONE\ |#define $* <EM>value</EM>\ |\ |SA-dirstat\ | #; #; HTTP status code declarations. #; C|HTTP_CONTINUE\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_SWITCHING_PROTOCOLS\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_OK\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_CREATED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_ACCEPTED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_NON_AUTHORITATIVE\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_NO_CONTENT\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_RESET_CONTENT\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_PARTIAL_CONTENT\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_MULTIPLE_CHOICES\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_MOVED_PERMANENTLY\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_MOVED_TEMPORARILY\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_SEE_OTHER\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_NOT_MODIFIED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_USE_PROXY\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_BAD_REQUEST\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_UNAUTHORIZED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_PAYMENT_REQUIRED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_FORBIDDEN\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_NOT_FOUND\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_METHOD_NOT_ALLOWED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_NOT_ACCEPTABLE\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_PROXY_AUTHENTICATION_REQUIRED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_REQUEST_TIME_OUT\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_CONFLICT\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_GONE\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_LENGTH_REQUIRED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_PRECONDITION_FAILED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_REQUEST_ENTITY_TOO_LARGE\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_REQUEST_URI_TOO_LARGE\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_UNSUPPORTED_MEDIA_TYPE\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_INTERNAL_SERVER_ERROR\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_NOT_IMPLEMENTED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_BAD_GATEWAY\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_SERVICE_UNAVAILABLE\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_GATEWAY_TIME_OUT\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_VERSION_NOT_SUPPORTED\ |#define $* <EM>value</EM>\ |\ |\ | C|HTTP_VARIANT_ALSO_VARIES\ |#define $* <EM>value</EM>\ |\ |\ | #; #; These are macros, but they are invoked as though they were routines - #; so that's how we list them. #; X|SA-status-check\ |\ |\ |is_HTTP_INFO,is_HTTP_SUCCESS,is_HTTP_REDIRECT\ ,is_HTTP_ERROR,is_HTTP_CLIENT_ERROR,is_HTTP_SERVER_ERROR\ ,status_drops_connection\ | R|is_HTTP_INFO\ |#define $*(x) (((x) >= 100) && ((x) < 200))\ |\ |SA-status-check\ | R|is_HTTP_SUCCESS\ |#define $*(x) (((x) >= 200) && ((x) < 300))\ |\ |SA-status-check\ | R|is_HTTP_REDIRECT\ |#define $*(x) (((x) >= 300) && ((x) < 400))\ |\ |SA-status-check\ | R|is_HTTP_ERROR\ |#define $*(x) (((x) >= 400) && ((x) < 600))\ |\ |SA-status-check\ | R|is_HTTP_CLIENT_ERROR\ |#define $*(x) (((x) >= 400) && ((x) < 500))\ |\ |SA-status-check\ | R|is_HTTP_SERVER_ERROR\ |#define $*(x) (((x) >= 500) && ((x) < 600))\ |\ |SA-status-check\ | #; #; This is another messy definition; the spacing has to be done #; correctly for horizontal alignment in the final <PRE> block. #; R|status_drops_connection\ |#define $*(x) (((x) == HTTP_BAD_REQUEST) ||\n\ ((x) == HTTP_REQUEST_TIME_OUT) ||\n\ ((x) == HTTP_LENGTH_REQUIRED) ||\n\ ((x) == HTTP_REQUEST_ENTITY_TOO_LARGE) ||\n\ ((x) == HTTP_REQUEST_URI_TOO_LARGE) ||\n\ ((x) == HTTP_INTERNAL_SERVER_ERROR) ||\n\ ((x) == HTTP_SERVICE_UNAVAILABLE) ||\n\ ((x) == HTTP_NOT_IMPLEMENTED))\ |\ |SA-status-check\ | X|SA-methods\ |\ |\ |M_GET,M_PUT,M_POST,M_DELETE,M_CONNECT,M_OPTIONS,M_TRACE,M_INVALID\ | C|M_GET\ |#define $* <EM>value</EM>\ |\ |SA-methods\ | C|M_PUT\ |#define $* <EM>value</EM>\ |\ |SA-methods\ | C|M_POST\ |#define $* <EM>value</EM>\ |\ |SA-methods\ | C|M_DELETE\ |#define $* <EM>value</EM>\ |\ |SA-methods\ | C|M_CONNECT\ |#define $* <EM>value</EM>\ |\ |SA-methods\ | C|M_OPTIONS\ |#define $* <EM>value</EM>\ |\ |SA-methods\ | C|M_TRACE\ |#define $* <EM>value</EM>\ |\ |SA-methods\ | C|M_INVALID\ |#define $* <EM>value</EM>\ |\ |SA-methods\ |