Apache2
httpd.h
Go to the documentation of this file.
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements. See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
36 #ifndef APACHE_HTTPD_H
37 #define APACHE_HTTPD_H
38 
39 /* XXX - We need to push more stuff to other .h files, or even .c files, to
40  * make this file smaller
41  */
42 
43 /* Headers in which EVERYONE has an interest... */
44 #include "ap_config.h"
45 #include "ap_mmn.h"
46 
47 #include "ap_release.h"
48 
49 #include "apr.h"
50 #include "apr_version.h"
51 #include "apr_general.h"
52 #include "apr_tables.h"
53 #include "apr_pools.h"
54 #include "apr_time.h"
55 #include "apr_network_io.h"
56 #include "apr_buckets.h"
57 #include "apr_poll.h"
58 #include "apr_thread_proc.h"
59 #include "apr_hash.h"
60 
61 #include "os.h"
62 
63 #include "ap_regex.h"
64 
65 #if APR_HAVE_STDLIB_H
66 #include <stdlib.h>
67 #endif
68 
69 /* Note: apr_uri.h is also included, see below */
70 
71 #ifdef __cplusplus
72 extern "C" {
73 #endif
74 
75 /* ----------------------------- config dir ------------------------------ */
76 
80 #ifndef HTTPD_ROOT
81 #ifdef OS2
82 
83 #define HTTPD_ROOT "/os2httpd"
84 #elif defined(WIN32)
85 
86 #define HTTPD_ROOT "/apache"
87 #elif defined (NETWARE)
88 
89 #define HTTPD_ROOT "/apache"
90 #else
91 
92 #define HTTPD_ROOT "/usr/local/apache"
93 #endif
94 #endif /* HTTPD_ROOT */
95 
96 /*
97  * --------- You shouldn't have to edit anything below this line ----------
98  *
99  * Any modifications to any defaults not defined above should be done in the
100  * respective configuration file.
101  *
102  */
103 
108 #ifndef DOCUMENT_LOCATION
109 #ifdef OS2
110 /* Set default for OS/2 file system */
111 #define DOCUMENT_LOCATION HTTPD_ROOT "/docs"
112 #else
113 /* Set default for non OS/2 file system */
114 #define DOCUMENT_LOCATION HTTPD_ROOT "/htdocs"
115 #endif
116 #endif /* DOCUMENT_LOCATION */
117 
119 #ifndef DYNAMIC_MODULE_LIMIT
120 #define DYNAMIC_MODULE_LIMIT 256
121 #endif
122 
124 #define DEFAULT_ADMIN "[no address given]"
125 
127 #ifndef DEFAULT_ERRORLOG
128 #if defined(OS2) || defined(WIN32)
129 #define DEFAULT_ERRORLOG "logs/error.log"
130 #else
131 #define DEFAULT_ERRORLOG "logs/error_log"
132 #endif
133 #endif /* DEFAULT_ERRORLOG */
134 
136 #ifndef DEFAULT_ACCESS_FNAME
137 #ifdef OS2
138 /* Set default for OS/2 file system */
139 #define DEFAULT_ACCESS_FNAME "htaccess"
140 #else
141 #define DEFAULT_ACCESS_FNAME ".htaccess"
142 #endif
143 #endif /* DEFAULT_ACCESS_FNAME */
144 
146 #ifndef SERVER_CONFIG_FILE
147 #define SERVER_CONFIG_FILE "conf/httpd.conf"
148 #endif
149 
151 #ifndef DEFAULT_PATH
152 #define DEFAULT_PATH "/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin"
153 #endif
154 
156 #ifndef SUEXEC_BIN
157 #define SUEXEC_BIN HTTPD_ROOT "/bin/suexec"
158 #endif
159 
161 #ifndef DEFAULT_TIMEOUT
162 #define DEFAULT_TIMEOUT 60
163 #endif
164 
166 #ifndef DEFAULT_KEEPALIVE_TIMEOUT
167 #define DEFAULT_KEEPALIVE_TIMEOUT 5
168 #endif
169 
171 #ifndef DEFAULT_KEEPALIVE
172 #define DEFAULT_KEEPALIVE 100
173 #endif
174 
175 /*
176  * Limits on the size of various request items. These limits primarily
177  * exist to prevent simple denial-of-service attacks on a server based
178  * on misuse of the protocol. The recommended values will depend on the
179  * nature of the server resources -- CGI scripts and database backends
180  * might require large values, but most servers could get by with much
181  * smaller limits than we use below. The request message body size can
182  * be limited by the per-dir config directive LimitRequestBody.
183  *
184  * Internal buffer sizes are two bytes more than the DEFAULT_LIMIT_REQUEST_LINE
185  * and DEFAULT_LIMIT_REQUEST_FIELDSIZE below, which explains the 8190.
186  * These two limits can be lowered or raised by the server config
187  * directives LimitRequestLine and LimitRequestFieldsize, respectively.
188  *
189  * DEFAULT_LIMIT_REQUEST_FIELDS can be modified or disabled (set = 0) by
190  * the server config directive LimitRequestFields.
191  */
192 
194 #ifndef DEFAULT_LIMIT_REQUEST_LINE
195 #define DEFAULT_LIMIT_REQUEST_LINE 8190
196 #endif
197 
198 #ifndef DEFAULT_LIMIT_REQUEST_FIELDSIZE
199 #define DEFAULT_LIMIT_REQUEST_FIELDSIZE 8190
200 #endif
201 
202 #ifndef DEFAULT_LIMIT_REQUEST_FIELDS
203 #define DEFAULT_LIMIT_REQUEST_FIELDS 100
204 #endif
205 
206 #ifndef DEFAULT_LIMIT_BLANK_LINES
207 #define DEFAULT_LIMIT_BLANK_LINES 10
208 #endif
209 
214 #define DEFAULT_ADD_DEFAULT_CHARSET_NAME "iso-8859-1"
215 
217 #define AP_SERVER_PROTOCOL "HTTP/1.1"
218 
219 
220 /* ------------------ stuff that modules are allowed to look at ----------- */
221 
223 #ifndef AP_DEFAULT_INDEX
224 #define AP_DEFAULT_INDEX "index.html"
225 #endif
226 
228 #ifndef AP_TYPES_CONFIG_FILE
229 #define AP_TYPES_CONFIG_FILE "conf/mime.types"
230 #endif
231 
232 /*
233  * Define the HTML doctype strings centrally.
234  */
236 #define DOCTYPE_HTML_2_0 "<!DOCTYPE HTML PUBLIC \"-//IETF//" \
237  "DTD HTML 2.0//EN\">\n"
238 
239 #define DOCTYPE_HTML_3_2 "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
240  "DTD HTML 3.2 Final//EN\">\n"
241 
242 #define DOCTYPE_HTML_4_0S "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
243  "DTD HTML 4.0//EN\"\n" \
244  "\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
245 
246 #define DOCTYPE_HTML_4_0T "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
247  "DTD HTML 4.0 Transitional//EN\"\n" \
248  "\"http://www.w3.org/TR/REC-html40/loose.dtd\">\n"
249 
250 #define DOCTYPE_HTML_4_0F "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
251  "DTD HTML 4.0 Frameset//EN\"\n" \
252  "\"http://www.w3.org/TR/REC-html40/frameset.dtd\">\n"
253 
254 #define DOCTYPE_HTML_4_01 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n"
255 
256 #define DOCTYPE_HTML_5 "<!DOCTYPE html>\n"
257 
258 #define DOCTYPE_XHTML_1_0S "<!DOCTYPE html PUBLIC \"-//W3C//" \
259  "DTD XHTML 1.0 Strict//EN\"\n" \
260  "\"http://www.w3.org/TR/xhtml1/DTD/" \
261  "xhtml1-strict.dtd\">\n"
262 
263 #define DOCTYPE_XHTML_1_0T "<!DOCTYPE html PUBLIC \"-//W3C//" \
264  "DTD XHTML 1.0 Transitional//EN\"\n" \
265  "\"http://www.w3.org/TR/xhtml1/DTD/" \
266  "xhtml1-transitional.dtd\">\n"
267 
268 #define DOCTYPE_XHTML_1_0F "<!DOCTYPE html PUBLIC \"-//W3C//" \
269  "DTD XHTML 1.0 Frameset//EN\"\n" \
270  "\"http://www.w3.org/TR/xhtml1/DTD/" \
271  "xhtml1-frameset.dtd\">"
272 
274 #define HTTP_VERSION(major,minor) (1000*(major)+(minor))
275 
276 #define HTTP_VERSION_MAJOR(number) ((number)/1000)
277 
278 #define HTTP_VERSION_MINOR(number) ((number)%1000)
279 
280 /* -------------- Port number for server running standalone --------------- */
281 
283 #define DEFAULT_HTTP_PORT 80
284 
285 #define DEFAULT_HTTPS_PORT 443
286 
292 #define ap_is_default_port(port,r) ((port) == ap_default_port(r))
293 
297 #define ap_default_port(r) ap_run_default_port(r)
298 
302 #define ap_http_scheme(r) ap_run_http_scheme(r)
303 
305 #define MAX_STRING_LEN HUGE_STRING_LEN
306 
308 #define HUGE_STRING_LEN 8192
309 
311 #define AP_IOBUFSIZE 8192
312 
314 #define AP_MAX_REG_MATCH 10
315 
322 #define AP_MAX_SENDFILE 16777216 /* 2^24 */
323 
330 #define APEXIT_OK 0x0
331 
332 #define APEXIT_INIT 0x2
333 
334 #define APEXIT_CHILDINIT 0x3
335 
340 #define APEXIT_CHILDSICK 0x7
341 
346 #define APEXIT_CHILDFATAL 0xf
347 
348 #ifndef AP_DECLARE
349 
354 # define AP_DECLARE(type) type
355 #endif
356 
357 #ifndef AP_DECLARE_NONSTD
358 
365 # define AP_DECLARE_NONSTD(type) type
366 #endif
367 #ifndef AP_DECLARE_DATA
368 # define AP_DECLARE_DATA
369 #endif
370 
371 #ifndef AP_MODULE_DECLARE
372 # define AP_MODULE_DECLARE(type) type
373 #endif
374 #ifndef AP_MODULE_DECLARE_NONSTD
375 # define AP_MODULE_DECLARE_NONSTD(type) type
376 #endif
377 #ifndef AP_MODULE_DECLARE_DATA
378 # define AP_MODULE_DECLARE_DATA
379 #endif
380 
385 #ifndef AP_CORE_DECLARE
386 # define AP_CORE_DECLARE AP_DECLARE
387 #endif
388 
394 #ifndef AP_CORE_DECLARE_NONSTD
395 # define AP_CORE_DECLARE_NONSTD AP_DECLARE_NONSTD
396 #endif
397 
402 #define AP_START_USERERR (APR_OS_START_USERERR + 2000)
403 #define AP_USERERR_LEN 1000
404 
406 #define AP_DECLINED (AP_START_USERERR + 0)
407 
414 typedef struct {
415  int major;
416  int minor;
417  int patch;
418  const char *add_string;
419 } ap_version_t;
420 
428 
435 AP_DECLARE(const char *) ap_get_server_banner(void);
436 
444 AP_DECLARE(const char *) ap_get_server_description(void);
445 
451 AP_DECLARE(void) ap_add_version_component(apr_pool_t *pconf, const char *component);
452 
457 AP_DECLARE(const char *) ap_get_server_built(void);
458 
459 /* non-HTTP status codes returned by hooks */
460 
461 #define OK 0
462 #define DECLINED -1
463 #define DONE -2
466 #define SUSPENDED -3
471 #define AP_NOBODY_WROTE -100
472 
474 #define AP_NOBODY_READ -101
475 
478 #define AP_FILTER_ERROR -102
479 
490 #define RESPONSE_CODES 103
491 
492 #define HTTP_CONTINUE 100
493 #define HTTP_SWITCHING_PROTOCOLS 101
494 #define HTTP_PROCESSING 102
495 #define HTTP_OK 200
496 #define HTTP_CREATED 201
497 #define HTTP_ACCEPTED 202
498 #define HTTP_NON_AUTHORITATIVE 203
499 #define HTTP_NO_CONTENT 204
500 #define HTTP_RESET_CONTENT 205
501 #define HTTP_PARTIAL_CONTENT 206
502 #define HTTP_MULTI_STATUS 207
503 #define HTTP_ALREADY_REPORTED 208
504 #define HTTP_IM_USED 226
505 #define HTTP_MULTIPLE_CHOICES 300
506 #define HTTP_MOVED_PERMANENTLY 301
507 #define HTTP_MOVED_TEMPORARILY 302
508 #define HTTP_SEE_OTHER 303
509 #define HTTP_NOT_MODIFIED 304
510 #define HTTP_USE_PROXY 305
511 #define HTTP_TEMPORARY_REDIRECT 307
512 #define HTTP_PERMANENT_REDIRECT 308
513 #define HTTP_BAD_REQUEST 400
514 #define HTTP_UNAUTHORIZED 401
515 #define HTTP_PAYMENT_REQUIRED 402
516 #define HTTP_FORBIDDEN 403
517 #define HTTP_NOT_FOUND 404
518 #define HTTP_METHOD_NOT_ALLOWED 405
519 #define HTTP_NOT_ACCEPTABLE 406
520 #define HTTP_PROXY_AUTHENTICATION_REQUIRED 407
521 #define HTTP_REQUEST_TIME_OUT 408
522 #define HTTP_CONFLICT 409
523 #define HTTP_GONE 410
524 #define HTTP_LENGTH_REQUIRED 411
525 #define HTTP_PRECONDITION_FAILED 412
526 #define HTTP_REQUEST_ENTITY_TOO_LARGE 413
527 #define HTTP_REQUEST_URI_TOO_LARGE 414
528 #define HTTP_UNSUPPORTED_MEDIA_TYPE 415
529 #define HTTP_RANGE_NOT_SATISFIABLE 416
530 #define HTTP_EXPECTATION_FAILED 417
531 #define HTTP_IM_A_TEAPOT 418
532 #define HTTP_MISDIRECTED_REQUEST 421
533 #define HTTP_UNPROCESSABLE_ENTITY 422
534 #define HTTP_LOCKED 423
535 #define HTTP_FAILED_DEPENDENCY 424
536 #define HTTP_TOO_EARLY 425
537 #define HTTP_UPGRADE_REQUIRED 426
538 #define HTTP_PRECONDITION_REQUIRED 428
539 #define HTTP_TOO_MANY_REQUESTS 429
540 #define HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE 431
541 #define HTTP_UNAVAILABLE_FOR_LEGAL_REASONS 451
542 #define HTTP_INTERNAL_SERVER_ERROR 500
543 #define HTTP_NOT_IMPLEMENTED 501
544 #define HTTP_BAD_GATEWAY 502
545 #define HTTP_SERVICE_UNAVAILABLE 503
546 #define HTTP_GATEWAY_TIME_OUT 504
547 #define HTTP_VERSION_NOT_SUPPORTED 505
548 #define HTTP_VARIANT_ALSO_VARIES 506
549 #define HTTP_INSUFFICIENT_STORAGE 507
550 #define HTTP_LOOP_DETECTED 508
551 #define HTTP_NOT_EXTENDED 510
552 #define HTTP_NETWORK_AUTHENTICATION_REQUIRED 511
553 
555 #define ap_is_HTTP_INFO(x) (((x) >= 100)&&((x) < 200))
556 
557 #define ap_is_HTTP_SUCCESS(x) (((x) >= 200)&&((x) < 300))
558 
559 #define ap_is_HTTP_REDIRECT(x) (((x) >= 300)&&((x) < 400))
560 
561 #define ap_is_HTTP_ERROR(x) (((x) >= 400)&&((x) < 600))
562 
563 #define ap_is_HTTP_CLIENT_ERROR(x) (((x) >= 400)&&((x) < 500))
564 
565 #define ap_is_HTTP_SERVER_ERROR(x) (((x) >= 500)&&((x) < 600))
566 
567 #define ap_is_HTTP_VALID_RESPONSE(x) (((x) >= 100)&&((x) < 600))
568 
570 #define ap_status_drops_connection(x) \
571  (((x) == HTTP_BAD_REQUEST) || \
572  ((x) == HTTP_REQUEST_TIME_OUT) || \
573  ((x) == HTTP_LENGTH_REQUIRED) || \
574  ((x) == HTTP_REQUEST_ENTITY_TOO_LARGE) || \
575  ((x) == HTTP_REQUEST_URI_TOO_LARGE) || \
576  ((x) == HTTP_INTERNAL_SERVER_ERROR) || \
577  ((x) == HTTP_SERVICE_UNAVAILABLE) || \
578  ((x) == HTTP_NOT_IMPLEMENTED))
579 
581 #define AP_STATUS_IS_HEADER_ONLY(x) ((x) == HTTP_NO_CONTENT || \
582  (x) == HTTP_NOT_MODIFIED)
583 
599 #define M_GET 0
600 #define M_PUT 1 /* : */
601 #define M_POST 2
602 #define M_DELETE 3
603 #define M_CONNECT 4
604 #define M_OPTIONS 5
605 #define M_TRACE 6
606 #define M_PATCH 7
607 #define M_PROPFIND 8
608 #define M_PROPPATCH 9 /* : */
609 #define M_MKCOL 10
610 #define M_COPY 11
611 #define M_MOVE 12
612 #define M_LOCK 13
613 #define M_UNLOCK 14
614 #define M_VERSION_CONTROL 15
615 #define M_CHECKOUT 16 /* : */
616 #define M_UNCHECKOUT 17
617 #define M_CHECKIN 18
618 #define M_UPDATE 19
619 #define M_LABEL 20
620 #define M_REPORT 21
621 #define M_MKWORKSPACE 22
622 #define M_MKACTIVITY 23
623 #define M_BASELINE_CONTROL 24
624 #define M_MERGE 25
625 /* Additional methods must be registered by the implementor, we have only
626  * room for 64 bit-wise methods available, so do not squander them (more of
627  * the above methods should probably move here)
628  */
629 /* #define M_BREW nn */
630 /* #define M_WHEN nn */
631 #define M_INVALID 26
639 #define METHODS 64
640 
648 #define AP_METHOD_BIT ((ap_method_mask_t)1)
649 
651 typedef struct ap_method_list_t ap_method_list_t;
652 
665 };
680 
686 #define AP_REQUEST_STRONG_ETAG 1 >> 0
687 
692 #define AP_REQUEST_GET_BNOTE(r, mask) \
693  ((mask) & ((r)->bnotes))
694 
699 #define AP_REQUEST_SET_BNOTE(r, mask, val) \
700  (r)->bnotes = (((r)->bnotes & ~(mask)) | (val))
701 
705 #define AP_REQUEST_IS_STRONG_ETAG(r) \
706  AP_REQUEST_GET_BNOTE((r), AP_REQUEST_STRONG_ETAG)
707 
715 #define CGI_MAGIC_TYPE "application/x-httpd-cgi"
716 
717 #define INCLUDES_MAGIC_TYPE "text/x-server-parsed-html"
718 
719 #define INCLUDES_MAGIC_TYPE3 "text/x-server-parsed-html3"
720 
721 #define DIR_MAGIC_TYPE "httpd/unix-directory"
722 
723 #define AP_DEFAULT_HANDLER_NAME ""
724 #define AP_IS_DEFAULT_HANDLER_NAME(x) (*x == '\0')
725 
727 /* Just in case your linefeed isn't the one the other end is expecting. */
728 #if !APR_CHARSET_EBCDIC
729 
730 #define LF 10
731 
732 #define CR 13
733 
734 #define CRLF "\015\012"
735 #else /* APR_CHARSET_EBCDIC */
736 /* For platforms using the EBCDIC charset, the transition ASCII->EBCDIC is done
737  * in the buff package (bread/bputs/bwrite). Everywhere else, we use
738  * "native EBCDIC" CR and NL characters. These are therefore
739  * defined as
740  * '\r' and '\n'.
741  */
742 #define CR '\r'
743 #define LF '\n'
744 #define CRLF "\r\n"
745 #endif /* APR_CHARSET_EBCDIC */
746 
747 #define CRLF_ASCII "\015\012"
748 #define ZERO_ASCII "\060"
749 
757 #define REQUEST_NO_BODY 0
758 
759 #define REQUEST_CHUNKED_ERROR 1
760 
761 #define REQUEST_CHUNKED_DECHUNK 2
762 
772 #define AP_REQ_ACCEPT_PATH_INFO 0
773 
774 #define AP_REQ_REJECT_PATH_INFO 1
775 
776 #define AP_REQ_DEFAULT_PATH_INFO 2
777 
781 /*
782  * Things which may vary per file-lookup WITHIN a request ---
783  * e.g., state of MIME config. Basically, the name of an object, info
784  * about the object, and any other info we may have which may need to
785  * change as we go poking around looking for it (e.g., overridden by
786  * .htaccess files).
787  *
788  * Note how the default state of almost all these things is properly
789  * zero, so that allocating it with pcalloc does the right thing without
790  * a whole lot of hairy initialization... so long as we are willing to
791  * make the (fairly) portable assumption that the bit pattern of a NULL
792  * pointer is, in fact, zero.
793  */
794 
801  const char *dir;
803  int override;
811  const struct htaccess_result *next;
812 };
813 
814 /* The following four types define a hierarchy of activities, so that
815  * given a request_rec r you can write r->connection->server->process
816  * to get to the process_rec. While this reduces substantially the
817  * number of arguments that various hooks require beware that in
818  * threaded versions of the server you must consider multiplexing
819  * issues. */
820 
821 
823 typedef struct process_rec process_rec;
825 typedef struct server_rec server_rec;
827 typedef struct conn_rec conn_rec;
831 typedef struct request_rec request_rec;
833 typedef struct conn_state_t conn_state_t;
834 
835 /* ### would be nice to not include this from httpd.h ... */
836 /* This comes after we have defined the request_rec type */
837 #include "apr_uri.h"
838 
842 struct process_rec {
848  const char *short_name;
850  const char * const *argv;
852  int argc;
853 };
854 
858 struct request_rec {
865 
869  request_rec *prev;
870 
873  request_rec *main;
874 
875  /* Info about the request itself... we begin with stuff that only
876  * protocol.c should ever touch...
877  */
879  char *the_request;
881  int assbackwards;
886  int proxyreq;
892  const char *protocol;
896  const char *hostname;
897 
900 
902  const char *status_line;
904  int status;
905 
906  /* Request method, two ways; also, protocol, etc.. Outside of protocol.c,
907  * look, but don't touch.
908  */
909 
913  const char *method;
914 
940 
947 
948  /* HTTP/1.1 connection-level features */
949 
951  const char *range;
955  int chunked;
956 
964  unsigned expecting_100;
968  /* XXX: ap_body_to_table has been removed. Remove body_table too or
969  * XXX: keep it to reintroduce ap_body_to_table without major bump? */
975 
976  /* MIME header environments, in and out. Also, an array containing
977  * environment variables to be passed to subprocesses, so people can
978  * write modules to add to that environment.
979  *
980  * The difference between headers_out and err_headers_out is that the
981  * latter are printed even on error, and persist across internal redirects
982  * (so the headers printed for ErrorDocument handlers will have them).
983  *
984  * The 'notes' apr_table_t is for notes from one module to another, with no
985  * other set purpose in mind...
986  */
987 
999 
1000  /* content_type, handler, content_encoding, and all content_languages
1001  * MUST be lowercased strings. They may be pointers to static strings;
1002  * they should not be modified in place.
1003  */
1005  const char *content_type; /* Break these out --- we dispatch on 'em */
1007  const char *handler; /* What we *really* dispatch on */
1010  const char *content_encoding;
1015  char *vlist_validator;
1018  char *user;
1020  char *ap_auth_type;
1021 
1022  /* What object is being requested (either directly, or via include
1023  * or content-negotiation mapping).
1024  */
1029  char *uri;
1031  char *filename;
1037  char *path_info;
1039  char *args;
1040 
1049  int used_path_info;
1052  int eos_sent;
1053 
1054  /* Various other config info which may change with .htaccess files
1055  * These are config vectors, with one void* pointer for each module
1056  * (the thing pointed to being the module's business).
1057  */
1063 
1067  const struct ap_logconf *log;
1068 
1072  const char *log_id;
1073 
1080  const struct htaccess_result *htaccess;
1085  struct ap_filter_t *input_filters;
1086 
1097  int no_local_copy;
1098 
1102 #if APR_HAS_THREADS
1104 #endif
1110 
1116  char *useragent_ip;
1122 
1126  char *useragent_host;
1131  int double_reverse;
1136  int taint;
1141  unsigned int flushed:1;
1154  int body_indeterminate;
1155 };
1156 
1167 #define PROXYREQ_NONE 0
1168 #define PROXYREQ_PROXY 1
1169 #define PROXYREQ_REVERSE 2
1170 #define PROXYREQ_RESPONSE 3
1172 /* @} */
1173 
1177 typedef enum {
1179  AP_CONN_CLOSE,
1182 
1183 /* For struct ap_filter and ap_filter_conn_ctx */
1184 #include "util_filter.h"
1185 
1189 struct conn_rec {
1195  void *vhost_lookup_data;
1196 
1197  /* Information about the connection itself */
1204 
1208  char *client_ip;
1212  char *remote_host;
1215  /* TODO: Remove from request_rec, make local to mod_ident */
1216  char *remote_logname;
1219  char *local_ip;
1222  char *local_host;
1225  long id;
1228  struct ap_conf_vector_t *conn_config;
1237  void *sbh;
1241  conn_state_t *cs;
1242 
1246  unsigned int clogging_input_filters:1;
1247 
1250  signed int double_reverse:2;
1253  unsigned aborted;
1254 
1260  int keepalives;
1261 
1264  const struct ap_logconf *log;
1265 
1269  const char *log_id;
1270 
1271 
1277 #if APR_HAS_THREADS
1279 #endif
1285  conn_rec *master;
1288  void *ctx;
1291  void *suspended_baton;
1297  struct ap_filter_conn_ctx *filter_conn_ctx;
1301 
1302  int outgoing;
1303 };
1305 struct conn_slave_rec {
1306  conn_rec *c;
1307 };
1308 
1314 typedef enum {
1320  CONN_STATE_LINGER, /* connection may be closed with lingering */
1321  CONN_STATE_LINGER_NORMAL, /* MPM has started lingering close with normal timeout */
1322  CONN_STATE_LINGER_SHORT, /* MPM has started lingering close with short timeout */
1323 
1324  CONN_STATE_NUM /* Number of states (keep/kept last) */
1327 typedef enum {
1329  CONN_SENSE_WANT_READ, /* next event must be read */
1330  CONN_SENSE_WANT_WRITE /* next event must be write */
1331 } conn_sense_e;
1332 
1341 };
1342 
1343 /* Per-vhost config... */
1344 
1349 #define DEFAULT_VHOST_ADDR 0xfffffffful
1350 
1351 
1356 typedef struct server_addr_rec server_addr_rec;
1361  char *virthost;
1366 };
1367 
1368 struct ap_logconf {
1370  signed char *module_levels;
1373  int level;
1374 };
1378 struct server_rec {
1382  server_rec *next;
1383 
1384  /* Log files --- note that transfer log is now in the modules... */
1391  struct ap_logconf log;
1396 
1397  /* Module-specific configuration for server, and defaults... */
1398 
1406  const char *defn_name;
1410  char is_virtual;
1411 
1412 
1413  /* Information for redirects */
1418  const char *server_scheme;
1419 
1420  /* Contact information */
1425  char *server_hostname;
1426 
1427  /* Transaction handling */
1438  int keep_alive;
1446  const char *path;
1448  int pathlen;
1455  int limit_req_fields;
1458  void *context;
1459 
1463  unsigned int keep_alive_timeout_set:1;
1464 };
1465 
1470 typedef struct ap_sload_t ap_sload_t;
1471 struct ap_sload_t {
1472  /* percentage of process/threads ready/idle (0->100)*/
1473  int idle;
1474  /* percentage of process/threads busy (0->100) */
1475  int busy;
1476  /* total bytes served */
1478  /* total access count */
1479  unsigned long access_count;
1480 };
1481 
1486 typedef struct ap_loadavg_t ap_loadavg_t;
1488  /* current loadavg, ala getloadavg() */
1489  float loadavg;
1490  /* 5 min loadavg */
1491  float loadavg5;
1492  /* 15 min loadavg */
1493  float loadavg15;
1494 };
1495 
1506 
1512 AP_DECLARE(const char *) ap_context_prefix(request_rec *r);
1513 
1522 AP_DECLARE(void) ap_set_context_info(request_rec *r, const char *prefix,
1523  const char *document_root);
1524 
1530 AP_DECLARE(void) ap_set_document_root(request_rec *r, const char *document_root);
1531 
1539 AP_DECLARE(char *) ap_field_noparam(apr_pool_t *p, const char *intype);
1540 
1549 AP_DECLARE(char *) ap_ht_time(apr_pool_t *p, apr_time_t t, const char *fmt, int gmt);
1550 
1551 /* String handling. The *_nc variants allow you to use non-const char **s as
1552  arguments (unfortunately C won't automatically convert a char ** to a const
1553  char **) */
1554 
1562 AP_DECLARE(char *) ap_getword(apr_pool_t *p, const char **line, char stop);
1563 
1572 AP_DECLARE(char *) ap_getword_nc(apr_pool_t *p, char **line, char stop);
1573 
1581 AP_DECLARE(char *) ap_getword_white(apr_pool_t *p, const char **line);
1582 
1591 AP_DECLARE(char *) ap_getword_white_nc(apr_pool_t *p, char **line);
1592 
1601 AP_DECLARE(char *) ap_getword_nulls(apr_pool_t *p, const char **line,
1602  char stop);
1603 
1613 AP_DECLARE(char *) ap_getword_nulls_nc(apr_pool_t *p, char **line, char stop);
1614 
1621 AP_DECLARE(char *) ap_getword_conf(apr_pool_t *p, const char **line);
1622 
1630 AP_DECLARE(char *) ap_getword_conf_nc(apr_pool_t *p, char **line);
1631 
1639 AP_DECLARE(char *) ap_getword_conf2(apr_pool_t *p, const char **line);
1640 
1649 AP_DECLARE(char *) ap_getword_conf2_nc(apr_pool_t *p, char **line);
1650 
1661 AP_DECLARE(const char *) ap_resolve_env(apr_pool_t *p, const char * word);
1662 
1672 AP_DECLARE(const char *) ap_size_list_item(const char **field, int *len);
1673 
1684 AP_DECLARE(char *) ap_get_list_item(apr_pool_t *p, const char **field);
1685 
1694 AP_DECLARE(int) ap_find_list_item(apr_pool_t *p, const char *line, const char *tok);
1695 
1703 AP_DECLARE(int) ap_find_etag_weak(apr_pool_t *p, const char *line, const char *tok);
1704 
1712 AP_DECLARE(int) ap_find_etag_strong(apr_pool_t *p, const char *line, const char *tok);
1713 
1714 /* Scan a string for field content chars, as defined by RFC7230 section 3.2
1715  * including VCHAR/obs-text, as well as HT and SP
1716  * @param ptr The string to scan
1717  * @return A pointer to the first (non-HT) ASCII ctrl character.
1718  * @note lws and trailing whitespace are scanned, the caller is responsible
1719  * for trimming leading and trailing whitespace
1720  */
1721 AP_DECLARE(const char *) ap_scan_http_field_content(const char *ptr);
1722 
1723 /* Scan a string for token characters, as defined by RFC7230 section 3.2.6
1724  * @param ptr The string to scan
1725  * @return A pointer to the first non-token character.
1726  */
1727 AP_DECLARE(const char *) ap_scan_http_token(const char *ptr);
1728 
1729 /* Scan a string for visible ASCII (0x21-0x7E) or obstext (0x80+)
1730  * and return a pointer to the first SP/CTL/NUL character encountered.
1731  * @param ptr The string to scan
1732  * @return A pointer to the first SP/CTL character.
1733  */
1734 AP_DECLARE(const char *) ap_scan_vchar_obstext(const char *ptr);
1735 
1749 AP_DECLARE(const char *) ap_parse_token_list_strict(apr_pool_t *p, const char *tok,
1750  apr_array_header_t **tokens,
1751  int skip_invalid);
1752 
1763 AP_DECLARE(char *) ap_get_token(apr_pool_t *p, const char **accept_line, int accept_white);
1764 
1772 AP_DECLARE(int) ap_find_token(apr_pool_t *p, const char *line, const char *tok);
1773 
1781 AP_DECLARE(int) ap_find_last_token(apr_pool_t *p, const char *line, const char *tok);
1782 
1788 AP_DECLARE(int) ap_is_url(const char *u);
1789 
1795 AP_DECLARE(int) ap_unescape_all(char *url);
1796 
1803 AP_DECLARE(int) ap_unescape_url(char *url);
1804 
1812 AP_DECLARE(int) ap_unescape_url_keep2f(char *url, int decode_slashes);
1814 #define AP_UNESCAPE_URL_KEEP_UNRESERVED (1u << 0)
1815 #define AP_UNESCAPE_URL_FORBID_SLASHES (1u << 1)
1816 #define AP_UNESCAPE_URL_KEEP_SLASHES (1u << 2)
1817 
1824 AP_DECLARE(int) ap_unescape_url_ex(char *url, unsigned int flags);
1825 
1832 AP_DECLARE(int) ap_unescape_urlencoded(char *query);
1833 
1839 AP_DECLARE(void) ap_no2slash(char *name)
1848 AP_DECLARE(void) ap_no2slash_ex(char *name, int is_fs_path)
1851 #define AP_NORMALIZE_ALLOW_RELATIVE (1u << 0)
1852 #define AP_NORMALIZE_NOT_ABOVE_ROOT (1u << 1)
1853 #define AP_NORMALIZE_DECODE_UNRESERVED (1u << 2)
1854 #define AP_NORMALIZE_MERGE_SLASHES (1u << 3)
1855 #define AP_NORMALIZE_DROP_PARAMETERS (0) /* deprecated */
1856 
1864 AP_DECLARE(int) ap_normalize_path(char *path, unsigned int flags)
1865  AP_FN_ATTR_NONNULL((1));
1866 
1872 AP_DECLARE(void) ap_getparents(char *name)
1874 
1882 AP_DECLARE(char *) ap_escape_path_segment(apr_pool_t *p, const char *s)
1884 
1892 AP_DECLARE(char *) ap_escape_path_segment_buffer(char *c, const char *s)
1894 
1905 AP_DECLARE(char *) ap_os_escape_path(apr_pool_t *p, const char *path, int partial)
1909 #define ap_escape_uri(ppool,path) ap_os_escape_path(ppool,path,1)
1910 
1918 AP_DECLARE(char *) ap_escape_urlencoded(apr_pool_t *p, const char *s)
1920 
1928 AP_DECLARE(char *) ap_escape_urlencoded_buffer(char *c, const char *s)
1930 
1938 #define ap_escape_html(p,s) ap_escape_html2(p,s,0)
1939 
1947 AP_DECLARE(char *) ap_escape_html2(apr_pool_t *p, const char *s, int toasc)
1949 
1957 AP_DECLARE(char *) ap_escape_logitem(apr_pool_t *p, const char *str)
1958  AP_FN_ATTR_NONNULL((1));
1959 
1968 AP_DECLARE(apr_size_t) ap_escape_errorlog_item(char *dest, const char *source,
1969  apr_size_t buflen)
1970  AP_FN_ATTR_NONNULL((1));
1971 
1980 AP_DECLARE(char *) ap_construct_server(apr_pool_t *p, const char *hostname,
1981  apr_port_t port, const request_rec *r)
1982  AP_FN_ATTR_NONNULL((1,4));
1983 
1991 AP_DECLARE(char *) ap_escape_shell_cmd(apr_pool_t *p, const char *s)
1993 
1999 AP_DECLARE(int) ap_count_dirs(const char *path)
2001 
2013 AP_DECLARE(char *) ap_make_dirstr_prefix(char *d, const char *s, int n)
2015 
2023 AP_DECLARE(char *) ap_make_dirstr_parent(apr_pool_t *p, const char *s)
2025 
2039 AP_DECLARE(char *) ap_make_full_path(apr_pool_t *a, const char *dir, const char *f)
2041 
2050 AP_DECLARE(int) ap_os_is_path_absolute(apr_pool_t *p, const char *dir)
2052 
2060 AP_DECLARE(int) ap_is_matchexp(const char *str)
2062 
2069 AP_DECLARE(int) ap_strcmp_match(const char *str, const char *expected)
2071 
2079 AP_DECLARE(int) ap_strcasecmp_match(const char *str, const char *expected)
2081 
2089 AP_DECLARE(char *) ap_strcasestr(const char *s1, const char *s2)
2091 
2098 AP_DECLARE(const char *) ap_stripprefix(const char *bigstring,
2099  const char *prefix)
2101 
2109 AP_DECLARE(char *) ap_pbase64decode(apr_pool_t *p, const char *bufcoded);
2110 
2129  const char *encoded,
2130  char **decoded,
2131  apr_size_t *len);
2132 
2140 AP_DECLARE(char *) ap_pbase64encode(apr_pool_t *p, char *string);
2141 
2155 AP_DECLARE(ap_regex_t *) ap_pregcomp(apr_pool_t *p, const char *pattern,
2156  int cflags);
2157 
2166 
2180 AP_DECLARE(char *) ap_pregsub(apr_pool_t *p, const char *input,
2181  const char *source, apr_size_t nmatch,
2182  ap_regmatch_t pmatch[]);
2183 
2199  const char *input, const char *source,
2200  apr_size_t nmatch,
2201  ap_regmatch_t pmatch[],
2202  apr_size_t maxlen);
2203 
2209 AP_DECLARE(void) ap_content_type_tolower(char *s);
2210 
2215 AP_DECLARE(void) ap_str_tolower(char *s);
2216 
2221 AP_DECLARE(void) ap_str_toupper(char *s);
2222 
2230 AP_DECLARE(int) ap_ind(const char *str, char c); /* Sigh... */
2231 
2239 AP_DECLARE(int) ap_rind(const char *str, char c);
2240 
2248 AP_DECLARE(char *) ap_escape_quotes(apr_pool_t *p, const char *instring);
2249 
2260 AP_DECLARE(char *) ap_append_pid(apr_pool_t *p, const char *string,
2261  const char *delim);
2262 
2270 AP_DECLARE(int) ap_parse_strict_length(apr_off_t *len, const char *str);
2271 
2291  const char *timeout_parameter,
2292  apr_interval_time_t *timeout,
2293  const char *default_time_unit);
2294 
2304 #define AP_TAINT_HTACCESS 0x1
2305 
2313 
2325  const char **dest);
2326 
2336 AP_DECLARE(apr_status_t) ap_str2_alnum(const char *src, char *dest);
2337 
2346 typedef struct {
2347  const char *name;
2348  apr_bucket_brigade *value;
2349 } ap_form_pair_t;
2350 
2362  apr_array_header_t **ptr,
2363  apr_size_t num, apr_size_t size);
2364 
2365 /* Misc system hackery */
2372 AP_DECLARE(int) ap_is_rdirectory(apr_pool_t *p, const char *name);
2373 
2380 AP_DECLARE(int) ap_is_directory(apr_pool_t *p, const char *name);
2381 
2382 #ifdef _OSD_POSIX
2383 extern int os_init_job_environment(server_rec *s, const char *user_name, int one_process);
2384 #endif /* _OSD_POSIX */
2385 
2392 
2399 AP_DECLARE(void) ap_log_assert(const char *szExp, const char *szFile, int nLine)
2400  __attribute__((noreturn));
2401 
2405 #define ap_assert(exp) ((exp) ? (void)0 : ap_log_assert(#exp,__FILE__,__LINE__))
2406 
2414 #ifdef AP_DEBUG
2415 #define AP_DEBUG_ASSERT(exp) ap_assert(exp)
2416 #else
2417 #define AP_DEBUG_ASSERT(exp) ((void)0)
2418 #endif
2419 
2429 #define SIGSTOP_DETACH 1
2430 
2431 #define SIGSTOP_MAKE_CHILD 2
2432 
2433 #define SIGSTOP_SPAWN_CHILD 4
2434 
2435 #define SIGSTOP_PIPED_LOG_SPAWN 8
2436 
2437 #define SIGSTOP_CGI_CHILD 16
2438 
2440 #ifdef DEBUG_SIGSTOP
2441 extern int raise_sigstop_flags;
2442 #define RAISE_SIGSTOP(x) do { \
2443  if (raise_sigstop_flags & SIGSTOP_##x) raise(SIGSTOP);\
2444  } while (0)
2445 #else
2446 #define RAISE_SIGSTOP(x)
2447 #endif
2448 
2455 AP_DECLARE(const char *) ap_psignature(const char *prefix, request_rec *r);
2456 
2457  /* The C library has functions that allow const to be silently dropped ...
2458  these macros detect the drop in maintainer mode, but use the native
2459  methods for normal builds
2460 
2461  Note that on some platforms (e.g., AIX with gcc, Solaris with gcc), string.h needs
2462  to be included before the macros are defined or compilation will fail.
2463  */
2464 #include <string.h>
2465 
2466 AP_DECLARE(char *) ap_strchr(char *s, int c);
2467 AP_DECLARE(const char *) ap_strchr_c(const char *s, int c);
2468 AP_DECLARE(char *) ap_strrchr(char *s, int c);
2469 AP_DECLARE(const char *) ap_strrchr_c(const char *s, int c);
2470 AP_DECLARE(char *) ap_strstr(char *s, const char *c);
2471 AP_DECLARE(const char *) ap_strstr_c(const char *s, const char *c);
2474 
2475 #ifdef AP_DEBUG
2476 
2477 #undef strchr
2478 # define strchr(s, c) ap_strchr(s,c)
2479 #undef strrchr
2480 # define strrchr(s, c) ap_strrchr(s,c)
2481 #undef strstr
2482 # define strstr(s, c) ap_strstr(s,c)
2483 
2484 #if !defined(AP_DEBUG_NO_ALLOC_POISON) && !APR_POOL_DEBUG
2485 /*
2486  * ap_palloc_debug initializes allocated memory to non-zero
2487  */
2488 #define apr_palloc ap_palloc_debug
2489 /*
2490  * this is necessary to avoid useless double memset of memory
2491  * with ap_palloc_debug
2492  */
2493 #ifdef apr_pcalloc
2494 #undef apr_pcalloc
2495 #endif
2496 #define apr_pcalloc ap_pcalloc_debug
2497 #endif
2498 
2499 #else
2502 # define ap_strchr(s, c) strchr(s, c)
2503 
2504 # define ap_strchr_c(s, c) strchr(s, c)
2505 
2506 # define ap_strrchr(s, c) strrchr(s, c)
2507 
2508 # define ap_strrchr_c(s, c) strrchr(s, c)
2509 
2510 # define ap_strstr(s, c) strstr(s, c)
2511 
2512 # define ap_strstr_c(s, c) strstr(s, c)
2513 
2514 #endif
2515 
2526 
2534 
2538 AP_DECLARE(void) ap_abort_on_oom(void) __attribute__((noreturn));
2539 
2546 AP_DECLARE(void *) ap_malloc(size_t size)
2549 
2557 AP_DECLARE(void *) ap_calloc(size_t nelem, size_t size)
2560 
2568 AP_DECLARE(void *) ap_realloc(void *ptr, size_t size)
2571 
2572 #if APR_HAS_THREADS
2573 
2574 /* apr_thread_create() wrapper that handles thread pool limits and
2575  * ap_thread_current() eventually (if not handle by APR already).
2576  */
2578  apr_threadattr_t *attr,
2579  apr_thread_start_t func,
2580  void *data, apr_pool_t *pool);
2581 
2582 /* Make the main() thread ap_thread_current()-able. */
2584  apr_pool_t *pool);
2585 
2586 #if APR_VERSION_AT_LEAST(1,8,0)
2587 
2591 #if APR_HAS_THREAD_LOCAL && !defined(AP_NO_THREAD_LOCAL)
2592 #define AP_THREAD_LOCAL APR_THREAD_LOCAL
2593 #endif
2594 #define ap_thread_current apr_thread_current
2595 #define ap_thread_current_create apr_thread_current_create
2596 #define ap_thread_current_after_fork apr_thread_current_after_fork
2597 
2598 #else /* APR_VERSION_AT_LEAST(1,8,0) */
2599 
2600 #if !defined(AP_NO_THREAD_LOCAL)
2601 
2604 #if defined(__cplusplus) && __cplusplus >= 201103L
2605 #define AP_THREAD_LOCAL thread_local
2606 #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112 && \
2607  (!defined(__GNUC__) || \
2608  __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9))
2609 #define AP_THREAD_LOCAL _Thread_local
2610 #elif defined(__GNUC__) /* works for clang too */
2611 #define AP_THREAD_LOCAL __thread
2612 #elif defined(WIN32) && defined(_MSC_VER)
2613 #define AP_THREAD_LOCAL __declspec(thread)
2614 #endif
2615 #endif /* !defined(AP_NO_THREAD_LOCAL) */
2616 
2618  apr_threadattr_t *attr,
2619  apr_pool_t *pool);
2622 
2623 #endif /* APR_VERSION_AT_LEAST(1,8,0) */
2624 
2625 #endif /* APR_HAS_THREADS */
2626 
2627 #ifdef AP_THREAD_LOCAL
2628 #define AP_HAS_THREAD_LOCAL 1
2629 #else
2630 #define AP_HAS_THREAD_LOCAL 0
2631 #endif
2632 
2639 
2646 
2655 AP_DECLARE(void) ap_bin2hex(const void *src, apr_size_t srclen, char *dest)
2657 
2671  const char *username,
2672  const char *passwd,
2673  const char *hash);
2674 
2684  const char *cmd,
2685  const char * const *argv);
2687 
2688 #define AP_NORESTART APR_OS_START_USEERR + 1
2689 
2700  const char *s,
2701  int start);
2702 
2710  const char *s);
2711 
2724 AP_DECLARE(int) ap_cstr_casecmp(const char *s1, const char *s2);
2725 
2738 AP_DECLARE(int) ap_cstr_casecmpn(const char *s1, const char *s2, apr_size_t n);
2739 
2743 #define AP_DIR_FLAG_NONE 0
2744 
2749 #define AP_DIR_FLAG_OPTIONAL 1
2750 
2755 #define AP_DIR_FLAG_RECURSIVE 2
2756 
2760 typedef struct ap_dir_match_t ap_dir_match_t;
2761 
2771  const char *prefix;
2773  const char *(*cb)(ap_dir_match_t *w, const char *fname);
2775  void *ctx;
2777  int flags;
2779  unsigned int depth;
2780 };
2781 
2802 AP_DECLARE(const char *)ap_dir_nofnmatch(ap_dir_match_t *w, const char *fname)
2803  __attribute__((nonnull(1,2)));
2804 
2823 AP_DECLARE(const char *)ap_dir_fnmatch(ap_dir_match_t *w, const char *path,
2824  const char *fname) __attribute__((nonnull(1,3)));
2825 
2833 AP_DECLARE(int) ap_is_chunked(apr_pool_t *p, const char *line);
2834 
2835 #ifdef __cplusplus
2836 }
2837 #endif
2838 
2839 #endif /* !APACHE_HTTPD_H */
2840 
request_rec::read_length
apr_off_t read_length
Definition: httpd.h:972
conn_rec::sbh
void * sbh
Definition: httpd.h:1235
ap_unescape_urlencoded
int ap_unescape_urlencoded(char *query)
request_rec::trailers_out
apr_table_t * trailers_out
Definition: httpd.h:1119
apr_off_t
off_t apr_off_t
Definition: apr.h:396
process_rec
A structure that represents one process.
Definition: httpd.h:840
conn_slave_rec::c
conn_rec * c
Definition: httpd.h:1304
ap_loadavg_t::loadavg15
float loadavg15
Definition: httpd.h:1491
conn_rec::base_server
server_rec * base_server
Definition: httpd.h:1191
server_addr_rec::virthost
char * virthost
Definition: httpd.h:1359
ap_escape_shell_cmd
char char * ap_escape_shell_cmd(apr_pool_t *p, const char *s) AP_FN_ATTR_NONNULL_ALL
ap_config.h
Symbol export macros and hook functions.
process_rec::pool
apr_pool_t * pool
Definition: httpd.h:842
ap_regmatch_t
Definition: ap_regex.h:118
request_rec::filename
char * filename
Definition: httpd.h:1029
request_rec::double_reverse
int double_reverse
Definition: httpd.h:1129
request_rec::mtime
apr_time_t mtime
Definition: httpd.h:944
conn_rec::ctx
void * ctx
Definition: httpd.h:1286
ap_get_server_built
const char * ap_get_server_built(void)
conn_rec::cs
conn_state_t * cs
Definition: httpd.h:1239
request_rec::status_line
const char * status_line
Definition: httpd.h:900
htaccess_result::override_opts
int override_opts
Definition: httpd.h:803
ap_strcmp_match
int ap_strcmp_match(const char *str, const char *expected) AP_FN_ATTR_NONNULL_ALL
ap_malloc
void * ap_malloc(size_t size) __attribute__((malloc)) AP_FN_ATTR_ALLOC_SIZE(1)
ap_psignature
const char * ap_psignature(const char *prefix, request_rec *r)
conn_rec::requests
apr_array_header_t * requests
Definition: httpd.h:1292
request_rec::content_encoding
const char * content_encoding
Definition: httpd.h:1008
ap_construct_server
char * ap_construct_server(apr_pool_t *p, const char *hostname, apr_port_t port, const request_rec *r) AP_FN_ATTR_NONNULL((1
ap_escape_quotes
char * ap_escape_quotes(apr_pool_t *p, const char *instring)
server_rec::errorlog_provider
struct ap_errorlog_provider * errorlog_provider
Definition: httpd.h:1391
conn_rec::log
const struct ap_logconf * log
Definition: httpd.h:1262
conn_rec::current_thread
apr_thread_t * current_thread
Definition: httpd.h:1276
server_rec::keep_alive
int keep_alive
Definition: httpd.h:1436
ap_find_last_token
int ap_find_last_token(apr_pool_t *p, const char *line, const char *tok)
ap_thread_main_create
apr_status_t ap_thread_main_create(apr_thread_t **thread, apr_pool_t *pool)
ap_cstr_casecmpn
int ap_cstr_casecmpn(const char *s1, const char *s2, apr_size_t n)
pool
apr_bucket_brigade request_rec apr_pool_t * pool
Definition: mod_dav.h:557
ap_sload_t::busy
int busy
Definition: httpd.h:1473
ap_sload_t
A structure to hold server load params.
Definition: httpd.h:1469
ap_normalize_path
int ap_normalize_path(char *path, unsigned int flags) AP_FN_ATTR_NONNULL((1))
server_rec::timeout
apr_interval_time_t timeout
Definition: httpd.h:1430
ap_version_t::patch
int patch
Definition: httpd.h:417
conn_rec::client_addr
apr_sockaddr_t * client_addr
Definition: httpd.h:1201
conn_rec::vhost_lookup_data
void * vhost_lookup_data
Definition: httpd.h:1193
conn_rec
Structure to store things which are per connection.
Definition: httpd.h:1187
conn_rec::conn_config
struct ap_conf_vector_t * conn_config
Definition: httpd.h:1226
request_rec::range
const char * range
Definition: httpd.h:949
apr_bucket_alloc_t
struct apr_bucket_alloc_t apr_bucket_alloc_t
Definition: apr_buckets.h:128
ap_unescape_all
int ap_unescape_all(char *url)
ap_str2_alnum
apr_status_t ap_str2_alnum(const char *src, char *dest)
ap_make_dirstr_parent
char * ap_make_dirstr_parent(apr_pool_t *p, const char *s) AP_FN_ATTR_NONNULL_ALL
ap_set_document_root
void ap_set_document_root(request_rec *r, const char *document_root)
request_rec::content_languages
apr_array_header_t * content_languages
Definition: httpd.h:1010
request_rec::log
const struct ap_logconf * log
Definition: httpd.h:1065
request_rec::request_config
struct ap_conf_vector_t * request_config
Definition: httpd.h:1060
ap_dir_nofnmatch
const char * ap_dir_nofnmatch(ap_dir_match_t *w, const char *fname) __attribute__((nonnull(1
request_rec::useragent_ip
char * useragent_ip
Definition: httpd.h:1114
ap_parse_form_data
int ap_parse_form_data(request_rec *r, struct ap_filter_t *f, apr_array_header_t **ptr, apr_size_t num, apr_size_t size)
ap_str_toupper
void ap_str_toupper(char *s)
ap_pstr2_alnum
apr_status_t ap_pstr2_alnum(apr_pool_t *p, const char *src, const char **dest)
server_rec::pathlen
int pathlen
Definition: httpd.h:1446
request_rec::used_path_info
int used_path_info
Definition: httpd.h:1047
request_rec::uri
char * uri
Definition: httpd.h:1027
ap_find_etag_weak
int ap_find_etag_weak(apr_pool_t *p, const char *line, const char *tok)
ap_getword_nulls
char * ap_getword_nulls(apr_pool_t *p, const char **line, char stop)
ap_version_t::add_string
const char * add_string
Definition: httpd.h:418
CONN_SENSE_WANT_WRITE
@ CONN_SENSE_WANT_WRITE
Definition: httpd.h:1328
request_rec::htaccess
const struct htaccess_result * htaccess
Definition: httpd.h:1078
ap_dir_match_t::ctx
void * ctx
Definition: httpd.h:2773
request_rec::input_filters
struct ap_filter_t * input_filters
Definition: httpd.h:1083
ap_os_is_path_absolute
int ap_os_is_path_absolute(apr_pool_t *p, const char *dir) AP_FN_ATTR_NONNULL_ALL
apr_thread_mutex_t
Definition: apr_arch_thread_mutex.h:28
server_rec::module_config
struct ap_conf_vector_t * module_config
Definition: httpd.h:1399
server_rec::addrs
server_addr_rec * addrs
Definition: httpd.h:1428
flags
dav_resource int dav_locktoken dav_response int flags
Definition: mod_dav.h:1453
ap_request_tainted
int ap_request_tainted(request_rec *r, int flags)
ap_pbase64decode_strict
apr_status_t ap_pbase64decode_strict(apr_pool_t *p, const char *encoded, char **decoded, apr_size_t *len)
ap_get_list_item
char * ap_get_list_item(apr_pool_t *p, const char **field)
CONN_STATE_SUSPENDED
@ CONN_STATE_SUSPENDED
Definition: httpd.h:1317
ap_getword_nc
char * ap_getword_nc(apr_pool_t *p, char **line, char stop)
request_rec::bnotes
ap_request_bnotes_t bnotes
Definition: httpd.h:1144
request_rec::flushed
unsigned int flushed
Definition: httpd.h:1139
ap_get_server_description
const char * ap_get_server_description(void)
request_rec::clength
apr_off_t clength
Definition: httpd.h:951
ap_get_local_host
char * ap_get_local_host(apr_pool_t *p)
server_rec::limit_req_fieldsize
int limit_req_fieldsize
Definition: httpd.h:1451
ap_abort_on_oom
void ap_abort_on_oom(void) __attribute__((noreturn))
request_rec::proto_num
int proto_num
Definition: httpd.h:888
CONN_STATE_NUM
@ CONN_STATE_NUM
Definition: httpd.h:1322
server_rec::log
struct ap_logconf log
Definition: httpd.h:1389
apr_thread_start_t
void *(APR_THREAD_FUNC * apr_thread_start_t)(apr_thread_t *, void *)
Definition: apr_thread_proc.h:198
request_rec::log_id
const char * log_id
Definition: httpd.h:1070
request_rec::connection
conn_rec * connection
Definition: httpd.h:860
ap_pbase64encode
char * ap_pbase64encode(apr_pool_t *p, char *string)
htaccess_result::htaccess
struct ap_conf_vector_t * htaccess
Definition: httpd.h:807
ap_find_etag_strong
int ap_find_etag_strong(apr_pool_t *p, const char *line, const char *tok)
request_rec::method
const char * method
Definition: httpd.h:911
request_rec::body_indeterminate
int body_indeterminate
Definition: httpd.h:1152
conn_rec::clogging_input_filters
unsigned int clogging_input_filters
Definition: httpd.h:1244
request_rec::eos_sent
int eos_sent
Definition: httpd.h:1050
request_rec::main
request_rec * main
Definition: httpd.h:871
ap_unescape_url
int ap_unescape_url(char *url)
ap_request_bnotes_t
apr_uint64_t ap_request_bnotes_t
Definition: httpd.h:677
server_rec::context
void * context
Definition: httpd.h:1456
server_rec::error_log
apr_file_t * error_log
Definition: httpd.h:1387
ap_array_str_index
int ap_array_str_index(const apr_array_header_t *array, const char *s, int start)
ap_set_context_info
void ap_set_context_info(request_rec *r, const char *prefix, const char *document_root)
ap_unescape_url_ex
int ap_unescape_url_ex(char *url, unsigned int flags)
ap_get_server_banner
const char * ap_get_server_banner(void)
request_rec::status
int status
Definition: httpd.h:902
apr_buckets.h
APR-UTIL Buckets/Bucket Brigades.
prefix
const char * prefix
Definition: mod_dav.h:631
ap_dir_match_t::prefix
const char * prefix
Definition: httpd.h:2769
conn_rec::output_filters
struct ap_filter_t * output_filters
Definition: httpd.h:1233
ap_no2slash_ex
void ap_no2slash_ex(char *name, int is_fs_path) AP_FN_ATTR_NONNULL_ALL
ap_getword
char * ap_getword(apr_pool_t *p, const char **line, char stop)
apr_array_header_t
Definition: apr_tables.h:62
AP_FN_ATTR_NONNULL
AP_FN_ATTR_NONNULL((1, 2, 5)) AP_FN_ATTR_WARN_UNUSED_RESULT
ap_conn_keepalive_e
ap_conn_keepalive_e
Enumeration of connection keepalive options.
Definition: httpd.h:1175
ap_strchr_c
#define ap_strchr_c(s, c)
Definition: httpd.h:2502
process_rec::short_name
const char * short_name
Definition: httpd.h:846
request_rec::user
char * user
Definition: httpd.h:1016
size
dav_buffer apr_size_t size
Definition: mod_dav.h:461
ap_get_exec_line
char * ap_get_exec_line(apr_pool_t *p, const char *cmd, const char *const *argv)
ap_get_sload
void ap_get_sload(ap_sload_t *ld) AP_FN_ATTR_NONNULL_ALL
process_rec::pconf
apr_pool_t * pconf
Definition: httpd.h:844
ap_dir_match_t::p
apr_pool_t * p
Definition: httpd.h:2765
request_rec::headers_in
apr_table_t * headers_in
Definition: httpd.h:987
conn_state_e
conn_state_e
Definition: httpd.h:1312
server_addr_rec::host_addr
apr_sockaddr_t * host_addr
Definition: httpd.h:1361
server_rec::defn_line_number
unsigned defn_line_number
Definition: httpd.h:1406
request_rec::ap_auth_type
char * ap_auth_type
Definition: httpd.h:1018
process_rec::argc
int argc
Definition: httpd.h:850
AP_FN_ATTR_ALLOC_SIZE2
#define AP_FN_ATTR_ALLOC_SIZE2(x, y)
Definition: ap_config.h:249
ap_method_mask_t
apr_uint64_t ap_method_mask_t
Definition: httpd.h:642
request_rec::args
char * args
Definition: httpd.h:1037
ap_dir_fnmatch
const char const char * ap_dir_fnmatch(ap_dir_match_t *w, const char *path, const char *fname) __attribute__((nonnull(1
ap_strrchr
#define ap_strrchr(s, c)
Definition: httpd.h:2504
apr_time.h
APR Time Library.
server_rec::path
const char * path
Definition: httpd.h:1444
htaccess_result::dir
const char * dir
Definition: httpd.h:799
conn_rec::remote_host
char * remote_host
Definition: httpd.h:1210
AP_CONN_UNKNOWN
@ AP_CONN_UNKNOWN
Definition: httpd.h:1176
CONN_STATE_LINGER
@ CONN_STATE_LINGER
Definition: httpd.h:1318
ap_version_t
The numeric version information is broken out into fields within this structure.
Definition: httpd.h:414
ap_logconf::level
int level
Definition: httpd.h:1371
ap_mmn.h
Module Magic Number.
ap_cstr_casecmp
int ap_cstr_casecmp(const char *s1, const char *s2)
ap_loadavg_t::loadavg
float loadavg
Definition: httpd.h:1487
ap_strrchr_c
#define ap_strrchr_c(s, c)
Definition: httpd.h:2506
ap_bin2hex
void ap_bin2hex(const void *src, apr_size_t srclen, char *dest) AP_FN_ATTR_NONNULL_ALL
ap_getword_conf2_nc
char * ap_getword_conf2_nc(apr_pool_t *p, char **line)
ap_count_dirs
int ap_count_dirs(const char *path) AP_FN_ATTR_NONNULL_ALL
ap_find_token
int ap_find_token(apr_pool_t *p, const char *line, const char *tok)
ap_pbase64decode
char * ap_pbase64decode(apr_pool_t *p, const char *bufcoded)
apr_uint64_t
uint64_t apr_uint64_t
Definition: apr.h:387
request_rec::per_dir_config
struct ap_conf_vector_t * per_dir_config
Definition: httpd.h:1058
ap_scan_http_field_content
const char * ap_scan_http_field_content(const char *ptr)
request_rec::subprocess_env
apr_table_t * subprocess_env
Definition: httpd.h:994
conn_rec::double_reverse
signed int double_reverse
Definition: httpd.h:1248
ap_field_noparam
char * ap_field_noparam(apr_pool_t *p, const char *intype)
apr_threadattr_t
Definition: apr_arch_threadproc.h:51
ap_thread_current
apr_thread_t * ap_thread_current(void)
ap_pcalloc_debug
void * ap_pcalloc_debug(apr_pool_t *p, apr_size_t size)
ap_get_token
char * ap_get_token(apr_pool_t *p, const char **accept_line, int accept_white)
apr_network_io.h
APR Network library.
ap_resolve_env
const char * ap_resolve_env(apr_pool_t *p, const char *word)
apr_thread_proc.h
APR Thread and Process Library.
request_rec::pool
apr_pool_t * pool
Definition: httpd.h:858
request_rec
A structure that represents the current request.
Definition: httpd.h:856
request_rec::useragent_host
char * useragent_host
Definition: httpd.h:1124
request_rec::invoke_mtx
apr_thread_mutex_t * invoke_mtx
Definition: httpd.h:1101
ap_version_t::major
int major
Definition: httpd.h:415
conn_rec::suspended_baton
void * suspended_baton
Definition: httpd.h:1289
request_rec::vlist_validator
char * vlist_validator
Definition: httpd.h:1013
conn_state_t::sense
conn_sense_e sense
Definition: httpd.h:1338
request_rec::content_type
const char * content_type
Definition: httpd.h:1003
ap_logconf
Definition: httpd.h:1366
request_rec::read_chunked
int read_chunked
Definition: httpd.h:960
request_rec::allowed_xmethods
apr_array_header_t * allowed_xmethods
Definition: httpd.h:935
ap_dir_match_t::ptemp
apr_pool_t * ptemp
Definition: httpd.h:2767
request_rec::trailers_in
apr_table_t * trailers_in
Definition: httpd.h:1117
apr_bucket_brigade
Definition: apr_buckets.h:263
request_rec::no_cache
int no_cache
Definition: httpd.h:1093
request_rec::headers_out
apr_table_t * headers_out
Definition: httpd.h:989
ap_escape_path_segment_buffer
char * ap_escape_path_segment_buffer(char *c, const char *s) AP_FN_ATTR_NONNULL_ALL
AP_CONN_CLOSE
@ AP_CONN_CLOSE
Definition: httpd.h:1177
src
dav_error * src
Definition: mod_dav.h:186
AP_FN_ATTR_WARN_UNUSED_RESULT
const char AP_FN_ATTR_WARN_UNUSED_RESULT
Definition: ssl_private.h:1129
CONN_STATE_READ_REQUEST_LINE
@ CONN_STATE_READ_REQUEST_LINE
Definition: httpd.h:1314
conn_sense_e
conn_sense_e
Definition: httpd.h:1325
ap_thread_current_create
apr_status_t ap_thread_current_create(apr_thread_t **current, apr_threadattr_t *attr, apr_pool_t *pool)
htaccess_result::override_list
apr_table_t * override_list
Definition: httpd.h:805
ap_strstr
#define ap_strstr(s, c)
Definition: httpd.h:2508
conn_rec::local_host
char * local_host
Definition: httpd.h:1220
apr_tables.h
APR Table library.
conn_slave_rec
Definition: httpd.h:1303
request_rec::useragent_addr
apr_sockaddr_t * useragent_addr
Definition: httpd.h:1113
ap_make_full_path
char * ap_make_full_path(apr_pool_t *a, const char *dir, const char *f) AP_FN_ATTR_NONNULL_ALL
ap_make_dirstr_prefix
char * ap_make_dirstr_prefix(char *d, const char *s, int n) AP_FN_ATTR_NONNULL_ALL
apr_interval_time_t
apr_int64_t apr_interval_time_t
Definition: apr_time.h:55
htaccess_result
This represents the result of calling htaccess; these are cached for each request.
Definition: httpd.h:797
ap_context_prefix
const char * ap_context_prefix(request_rec *r)
ap_context_document_root
const char * ap_context_document_root(request_rec *r)
CONN_SENSE_WANT_READ
@ CONN_SENSE_WANT_READ
Definition: httpd.h:1327
apr_finfo_t
Definition: apr_file_info.h:174
ap_pregcomp
ap_regex_t * ap_pregcomp(apr_pool_t *p, const char *pattern, int cflags)
server_rec::limit_req_line
int limit_req_line
Definition: httpd.h:1449
apr.h
APR Platform Definitions.
request_rec::header_only
int header_only
Definition: httpd.h:886
ap_ind
int ap_ind(const char *str, char c)
ap_realloc
void void * ap_realloc(void *ptr, size_t size) AP_FN_ATTR_WARN_UNUSED_RESULT AP_FN_ATTR_ALLOC_SIZE(2)
ap_os_escape_path
char * ap_os_escape_path(apr_pool_t *p, const char *path, int partial) AP_FN_ATTR_NONNULL_ALL
request_rec::the_request
char * the_request
Definition: httpd.h:877
ap_scan_http_token
const char * ap_scan_http_token(const char *ptr)
ap_escape_html2
char * ap_escape_html2(apr_pool_t *p, const char *s, int toasc) AP_FN_ATTR_NONNULL_ALL
server_rec::names
apr_array_header_t * names
Definition: httpd.h:1439
conn_state_t
A structure to contain connection state information.
Definition: httpd.h:1334
ap_parse_token_list_strict
const char * ap_parse_token_list_strict(apr_pool_t *p, const char *tok, apr_array_header_t **tokens, int skip_invalid)
conn_state_t::state
conn_state_e state
Definition: httpd.h:1336
ap_thread_create
apr_status_t ap_thread_create(apr_thread_t **thread, apr_threadattr_t *attr, apr_thread_start_t func, void *data, apr_pool_t *pool)
AP_FN_ATTR_NONNULL_ALL
#define AP_FN_ATTR_NONNULL_ALL
Definition: ap_config.h:260
request_rec::next
request_rec * next
Definition: httpd.h:865
ap_scan_vchar_obstext
const char * ap_scan_vchar_obstext(const char *ptr)
ap_is_url
int ap_is_url(const char *u)
apr_hash.h
APR Hash Tables.
AP_CONN_KEEPALIVE
@ AP_CONN_KEEPALIVE
Definition: httpd.h:1178
ap_random_insecure_bytes
void ap_random_insecure_bytes(void *buf, apr_size_t size)
CONN_STATE_CHECK_REQUEST_LINE_READABLE
@ CONN_STATE_CHECK_REQUEST_LINE_READABLE
Definition: httpd.h:1313
ap_content_type_tolower
void ap_content_type_tolower(char *s)
request_rec::expecting_100
unsigned expecting_100
Definition: httpd.h:962
ap_unescape_url_keep2f
int ap_unescape_url_keep2f(char *url, int decode_slashes)
conn_rec::keepalive
ap_conn_keepalive_e keepalive
Definition: httpd.h:1255
ap_method_list_t
Structure for handling HTTP methods.
Definition: httpd.h:658
ap_escape_urlencoded
char * ap_escape_urlencoded(apr_pool_t *p, const char *s) AP_FN_ATTR_NONNULL_ALL
ap_escape_urlencoded_buffer
char * ap_escape_urlencoded_buffer(char *c, const char *s) AP_FN_ATTR_NONNULL_ALL
apr_thread_t
Definition: apr_arch_threadproc.h:42
ap_pregsub_ex
apr_status_t ap_pregsub_ex(apr_pool_t *p, char **result, const char *input, const char *source, apr_size_t nmatch, ap_regmatch_t pmatch[], apr_size_t maxlen)
apr_file_t
Definition: apr_arch_file_io.h:107
request_rec::no_local_copy
int no_local_copy
Definition: httpd.h:1095
ap_thread_current_after_fork
void ap_thread_current_after_fork(void)
ap_sload_t::idle
int idle
Definition: httpd.h:1471
request_rec::handler
const char * handler
Definition: httpd.h:1005
apr_table_t
struct apr_table_t apr_table_t
Definition: apr_tables.h:56
ap_dir_match_t::depth
unsigned int depth
Definition: httpd.h:2777
malloc
#define malloc(x)
Definition: apr_private.h:170
conn_rec::outgoing
int outgoing
Definition: httpd.h:1300
__attribute__
#define __attribute__(__x)
Definition: apr.h:63
ap_getword_conf_nc
char * ap_getword_conf_nc(apr_pool_t *p, char **line)
server_rec::keep_alive_timeout_set
unsigned int keep_alive_timeout_set
Definition: httpd.h:1461
ap_get_loadavg
void ap_get_loadavg(ap_loadavg_t *ld) AP_FN_ATTR_NONNULL_ALL
conn_rec::notes
apr_table_t * notes
Definition: httpd.h:1229
ap_getword_conf2
char * ap_getword_conf2(apr_pool_t *p, const char **line)
request_rec::parsed_uri
apr_uri_t parsed_uri
Definition: httpd.h:1105
AP_FN_ATTR_ALLOC_SIZE
#define AP_FN_ATTR_ALLOC_SIZE(x)
Definition: ap_config.h:248
request_rec::output_filters
struct ap_filter_t * output_filters
Definition: httpd.h:1081
apr_general.h
APR Miscellaneous library routines.
request_rec::hostname
const char * hostname
Definition: httpd.h:894
request_rec::bytes_sent
apr_off_t bytes_sent
Definition: httpd.h:942
request_rec::proxyreq
int proxyreq
Definition: httpd.h:884
ap_pregfree
void ap_pregfree(apr_pool_t *p, ap_regex_t *reg)
ap_find_list_item
int ap_find_list_item(apr_pool_t *p, const char *line, const char *tok)
ap_timeout_parameter_parse
apr_status_t ap_timeout_parameter_parse(const char *timeout_parameter, apr_interval_time_t *timeout, const char *default_time_unit)
request_rec::allowed
ap_method_mask_t allowed
Definition: httpd.h:933
server_rec::limit_req_fields
int limit_req_fields
Definition: httpd.h:1453
CONN_SENSE_DEFAULT
@ CONN_SENSE_DEFAULT
Definition: httpd.h:1326
request_rec::read_body
int read_body
Definition: httpd.h:958
request_rec::prev
request_rec * prev
Definition: httpd.h:867
ap_escape_path_segment
char * ap_escape_path_segment(apr_pool_t *p, const char *s) AP_FN_ATTR_NONNULL_ALL
request_rec::protocol
const char * protocol
Definition: httpd.h:890
ap_escape_errorlog_item
apr_size_t ap_escape_errorlog_item(char *dest, const char *source, apr_size_t buflen) AP_FN_ATTR_NONNULL((1))
ap_getword_conf
char * ap_getword_conf(apr_pool_t *p, const char **line)
request_rec::proto_output_filters
struct ap_filter_t * proto_output_filters
Definition: httpd.h:1087
request_rec::notes
apr_table_t * notes
Definition: httpd.h:996
ap_add_version_component
void ap_add_version_component(apr_pool_t *pconf, const char *component)
ap_strstr_c
#define ap_strstr_c(s, c)
Definition: httpd.h:2510
ap_pregsub
char * ap_pregsub(apr_pool_t *p, const char *input, const char *source, apr_size_t nmatch, ap_regmatch_t pmatch[])
ap_log_assert
void ap_log_assert(const char *szExp, const char *szFile, int nLine) __attribute__((noreturn))
ap_password_validate
apr_status_t ap_password_validate(request_rec *r, const char *username, const char *passwd, const char *hash)
ap_loadavg_t::loadavg5
float loadavg5
Definition: httpd.h:1489
request_rec::method_number
int method_number
Definition: httpd.h:909
apr_version.h
APR Versioning Interface.
apr_time_t
apr_int64_t apr_time_t
Definition: apr_time.h:45
ap_form_pair_t
Definition: httpd.h:2344
ap_sload_t::bytes_served
apr_off_t bytes_served
Definition: httpd.h:1475
request_rec::remaining
apr_off_t remaining
Definition: httpd.h:970
ap_regex_t
Definition: ap_regex.h:111
request_rec::unparsed_uri
char * unparsed_uri
Definition: httpd.h:1025
ap_errorlog_provider
Definition: http_core.h:932
ap_getword_white_nc
char * ap_getword_white_nc(apr_pool_t *p, char **line)
server_rec::defn_name
const char * defn_name
Definition: httpd.h:1404
ap_append_pid
char * ap_append_pid(apr_pool_t *p, const char *string, const char *delim)
CONN_STATE_LINGER_SHORT
@ CONN_STATE_LINGER_SHORT
Definition: httpd.h:1320
apr_port_t
apr_uint16_t apr_port_t
Definition: apr_network_io.h:230
request_rec::sent_bodyct
apr_off_t sent_bodyct
Definition: httpd.h:940
server_rec::server_admin
char * server_admin
Definition: httpd.h:1421
str
dav_buffer const char * str
Definition: mod_dav.h:465
conn_rec::input_filters
struct ap_filter_t * input_filters
Definition: httpd.h:1231
apr_status_t
int apr_status_t
Definition: apr_errno.h:44
ap_regex.h
Apache Regex defines.
request_rec::allowed_methods
ap_method_list_t * allowed_methods
Definition: httpd.h:937
ap_method_list_t::method_mask
ap_method_mask_t method_mask
Definition: httpd.h:660
ap_logconf::module_levels
signed char * module_levels
Definition: httpd.h:1368
server_rec::server_hostname
char * server_hostname
Definition: httpd.h:1423
request_rec::finfo
apr_finfo_t finfo
Definition: httpd.h:1107
server_rec::port
apr_port_t port
Definition: httpd.h:1414
CONN_STATE_HANDLER
@ CONN_STATE_HANDLER
Definition: httpd.h:1315
conn_rec::id
long id
Definition: httpd.h:1223
server_rec::errorlog_provider_handle
void * errorlog_provider_handle
Definition: httpd.h:1393
apr_uint32_t
unsigned int apr_uint32_t
Definition: apr.h:348
ap_ht_time
char * ap_ht_time(apr_pool_t *p, apr_time_t t, const char *fmt, int gmt)
ap_getword_white
char * ap_getword_white(apr_pool_t *p, const char **line)
conn_rec::log_id
const char * log_id
Definition: httpd.h:1267
apr_pools.h
APR memory allocation.
server_rec::next
server_rec * next
Definition: httpd.h:1380
server_addr_rec::host_port
apr_port_t host_port
Definition: httpd.h:1363
conn_rec::client_ip
char * client_ip
Definition: httpd.h:1206
conn_rec::slaves
apr_array_header_t * slaves
Definition: httpd.h:1280
request_rec::request_time
apr_time_t request_time
Definition: httpd.h:897
server_rec::keep_alive_timeout
apr_interval_time_t keep_alive_timeout
Definition: httpd.h:1432
conn_rec::filter_conn_ctx
struct ap_filter_conn_ctx * filter_conn_ctx
Definition: httpd.h:1295
ap_request_has_body
int ap_request_has_body(request_rec *r)
request_rec::server
server_rec * server
Definition: httpd.h:862
request_rec::taint
int taint
Definition: httpd.h:1134
ap_strchr
#define ap_strchr(s, c)
Definition: httpd.h:2500
ap_stripprefix
const char * ap_stripprefix(const char *bigstring, const char *prefix) AP_FN_ATTR_NONNULL_ALL
ap_getparents
void ap_getparents(char *name) AP_FN_ATTR_NONNULL_ALL
ap_is_chunked
const char const char int ap_is_chunked(apr_pool_t *p, const char *line)
ap_rind
int ap_rind(const char *str, char c)
ap_loadavg_t
A structure to hold various server loadavg.
Definition: httpd.h:1485
ap_release.h
Version Release defines.
ap_size_list_item
const char * ap_size_list_item(const char **field, int *len)
ap_filter_t
The representation of a filter chain.
Definition: util_filter.h:278
CONN_STATE_LINGER_NORMAL
@ CONN_STATE_LINGER_NORMAL
Definition: httpd.h:1319
conn_rec::local_addr
apr_sockaddr_t * local_addr
Definition: httpd.h:1197
apr_size_t
size_t apr_size_t
Definition: apr.h:394
conn_rec::bucket_alloc
struct apr_bucket_alloc_t * bucket_alloc
Definition: httpd.h:1237
server_addr_rec::next
server_addr_rec * next
Definition: httpd.h:1357
CONN_STATE_WRITE_COMPLETION
@ CONN_STATE_WRITE_COMPLETION
Definition: httpd.h:1316
request_rec::canonical_filename
char * canonical_filename
Definition: httpd.h:1033
url
proxy_worker proxy_server_conf char * url
Definition: mod_proxy.h:643
server_rec
A structure to store information for each virtual server.
Definition: httpd.h:1376
ap_no2slash
void ap_no2slash(char *name) AP_FN_ATTR_NONNULL_ALL
ap_is_directory
int ap_is_directory(apr_pool_t *p, const char *name)
ap_str_tolower
void ap_str_tolower(char *s)
ap_conf_vector_t
struct ap_conf_vector_t ap_conf_vector_t
Definition: http_config.h:512
request_rec::chunked
int chunked
Definition: httpd.h:953
conn_rec::pool
apr_pool_t * pool
Definition: httpd.h:1189
name
const char * name
Definition: mod_dav.h:805
server_rec::wild_names
apr_array_header_t * wild_names
Definition: httpd.h:1441
conn_rec::aborted
unsigned aborted
Definition: httpd.h:1251
ap_is_rdirectory
int ap_is_rdirectory(apr_pool_t *p, const char *name)
ap_strcasestr
char * ap_strcasestr(const char *s1, const char *s2) AP_FN_ATTR_NONNULL_ALL
ap_get_server_revision
void ap_get_server_revision(ap_version_t *version)
conn_rec::async_filter
int async_filter
Definition: httpd.h:1298
ap_dir_match_t::flags
int flags
Definition: httpd.h:2775
ap_random_pick
apr_uint32_t ap_random_pick(apr_uint32_t min, apr_uint32_t max)
server_rec::error_fname
char * error_fname
Definition: httpd.h:1385
server_rec::lookup_defaults
struct ap_conf_vector_t * lookup_defaults
Definition: httpd.h:1401
server_rec::is_virtual
char is_virtual
Definition: httpd.h:1408
apr_uri.h
APR-UTIL URI Routines.
conn_rec::remote_logname
char * remote_logname
Definition: httpd.h:1214
server_rec::keep_alive_max
int keep_alive_max
Definition: httpd.h:1434
r
request_rec * r
Definition: mod_dav.h:518
ap_parse_strict_length
int ap_parse_strict_length(apr_off_t *len, const char *str)
ap_strcasecmp_match
int ap_strcasecmp_match(const char *str, const char *expected) AP_FN_ATTR_NONNULL_ALL
server_rec::server_scheme
const char * server_scheme
Definition: httpd.h:1416
ap_dir_match_t
Definition: httpd.h:2763
ap_getword_nulls_nc
char * ap_getword_nulls_nc(apr_pool_t *p, char **line, char stop)
request_rec::path_info
char * path_info
Definition: httpd.h:1035
apr_uri_t
Definition: apr_uri.h:85
ap_method_list_t::method_list
apr_array_header_t * method_list
Definition: httpd.h:662
ap_escape_logitem
char * ap_escape_logitem(apr_pool_t *p, const char *str) AP_FN_ATTR_NONNULL((1))
ap_array_str_contains
int ap_array_str_contains(const apr_array_header_t *array, const char *s)
ap_calloc
void * ap_calloc(size_t nelem, size_t size) __attribute__((malloc)) AP_FN_ATTR_ALLOC_SIZE2(1
p
apr_pool_t * p
conn_rec::keepalives
int keepalives
Definition: httpd.h:1258
ap_palloc_debug
void * ap_palloc_debug(apr_pool_t *p, apr_size_t size)
ap_version_t::minor
int minor
Definition: httpd.h:416
request_rec::assbackwards
int assbackwards
Definition: httpd.h:879
request_rec::kept_body
apr_bucket_brigade * kept_body
Definition: httpd.h:964
request_rec::err_headers_out
apr_table_t * err_headers_out
Definition: httpd.h:992
apr_sockaddr_t
Definition: apr_network_io.h:239
htaccess_result::next
const struct htaccess_result * next
Definition: httpd.h:809
AP_DECLARE
#define AP_DECLARE(x)
Definition: macros.h:1
request_rec::body_table
apr_table_t * body_table
Definition: httpd.h:968
server_addr_rec
A structure to be used for Per-vhost config.
Definition: httpd.h:1355
conn_rec::master
conn_rec * master
Definition: httpd.h:1283
process_rec::argv
const char *const * argv
Definition: httpd.h:848
request_rec::proto_input_filters
struct ap_filter_t * proto_input_filters
Definition: httpd.h:1090
apr_pool_t
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
server_rec::process
process_rec * process
Definition: httpd.h:1378
ap_is_matchexp
int ap_is_matchexp(const char *str) AP_FN_ATTR_NONNULL_ALL
conn_rec::local_ip
char * local_ip
Definition: httpd.h:1217
apr_poll.h
APR Poll interface.
util_filter.h
Apache filter library.
ap_sload_t::access_count
unsigned long access_count
Definition: httpd.h:1477