annotate src/http/ngx_http_request.h @ 196:8759b346e431 NGINX_0_3_45

nginx 0.3.45 *) Feature: the "ssl_verify_client", "ssl_verify_depth", and "ssl_client_certificate" directives. *) Change: the $request_method variable now returns the main request method. *) Change: the ° symbol codes were changed in koi-win conversion table. *) Feature: the euro и N symbols were added to koi-win conversion table. *) Bugfix: if nginx distributed the requests among several backends and some backend failed, then requests intended for this backend was directed to one live backend only instead of being distributed among the rest.
author Igor Sysoev <http://sysoev.ru>
date Sat, 06 May 2006 00:00:00 +0400
parents 54aabf2b0bc6
children e6da4931e0e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
1
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
2 /*
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
3 * Copyright (C) Igor Sysoev
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
4 */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
5
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
6
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
7 #ifndef _NGX_HTTP_REQUEST_H_INCLUDED_
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
8 #define _NGX_HTTP_REQUEST_H_INCLUDED_
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
9
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
10
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
11 #define NGX_HTTP_MAX_REWRITE_CYCLES 10
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
12
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
13
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
14 #define NGX_HTTP_DISCARD_BUFFER_SIZE 4096
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
15 #define NGX_HTTP_LINGERING_BUFFER_SIZE 4096
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
16
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
17
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
18 #define NGX_HTTP_VERSION_9 9
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
19 #define NGX_HTTP_VERSION_10 1000
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
20 #define NGX_HTTP_VERSION_11 1001
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
21
182
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
22 #define NGX_HTTP_UNKNOWN 0x0001
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
23 #define NGX_HTTP_GET 0x0002
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
24 #define NGX_HTTP_HEAD 0x0004
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
25 #define NGX_HTTP_POST 0x0008
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
26 #define NGX_HTTP_PUT 0x0010
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
27 #define NGX_HTTP_DELETE 0x0020
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
28 #define NGX_HTTP_MKCOL 0x0040
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
29
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
30 #define NGX_HTTP_CONNECTION_CLOSE 1
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
31 #define NGX_HTTP_CONNECTION_KEEP_ALIVE 2
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
32
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
33
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
34 #define NGX_NONE 1
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
35
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
36
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
37 #define NGX_HTTP_PARSE_HEADER_DONE 1
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
38
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
39 #define NGX_HTTP_CLIENT_ERROR 10
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
40 #define NGX_HTTP_PARSE_INVALID_METHOD 10
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
41 #define NGX_HTTP_PARSE_INVALID_REQUEST 11
54
bcb5fce0b038 nginx 0.1.27
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
42 #define NGX_HTTP_PARSE_INVALID_09_METHOD 12
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
43
54
bcb5fce0b038 nginx 0.1.27
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
44 #define NGX_HTTP_PARSE_INVALID_HEADER 13
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
45
122
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
46 #define NGX_HTTP_ZERO_IN_URI 1
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
47
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
48
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
49 #define NGX_HTTP_OK 200
182
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
50 #define NGX_HTTP_CREATED 201
60
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
51 #define NGX_HTTP_NO_CONTENT 204
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
52 #define NGX_HTTP_PARTIAL_CONTENT 206
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
53
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
54 #define NGX_HTTP_SPECIAL_RESPONSE 300
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
55 #define NGX_HTTP_MOVED_PERMANENTLY 301
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
56 #define NGX_HTTP_MOVED_TEMPORARILY 302
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
57 #define NGX_HTTP_NOT_MODIFIED 304
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
58
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
59 #define NGX_HTTP_BAD_REQUEST 400
52
0d75d65c642f nginx 0.1.26
Igor Sysoev <http://sysoev.ru>
parents: 50
diff changeset
60 #define NGX_HTTP_UNAUTHORIZED 401
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
61 #define NGX_HTTP_FORBIDDEN 403
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
62 #define NGX_HTTP_NOT_FOUND 404
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
63 #define NGX_HTTP_NOT_ALLOWED 405
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
64 #define NGX_HTTP_REQUEST_TIME_OUT 408
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
65 #define NGX_HTTP_CONFLICT 409
130
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
66 #define NGX_HTTP_LENGTH_REQUIRED 411
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
67 #define NGX_HTTP_REQUEST_ENTITY_TOO_LARGE 413
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
68 #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
69 #define NGX_HTTP_UNSUPPORTED_MEDIA_TYPE 415
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
70 #define NGX_HTTP_RANGE_NOT_SATISFIABLE 416
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
71
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
72
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
73 /* Our own HTTP codes */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
74
136
3656228c0b56 nginx 0.3.15
Igor Sysoev <http://sysoev.ru>
parents: 130
diff changeset
75 /* The special code to close connection without any response */
3656228c0b56 nginx 0.3.15
Igor Sysoev <http://sysoev.ru>
parents: 130
diff changeset
76 #define NGX_HTTP_CLOSE 444
3656228c0b56 nginx 0.3.15
Igor Sysoev <http://sysoev.ru>
parents: 130
diff changeset
77
196
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
78 #define NGX_HTTP_OWN_CODES 495
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
79
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
80 #define NGX_HTTPS_CERT_ERROR 495
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
81 #define NGX_HTTPS_NO_CERT 496
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
82
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
83 /*
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
84 * We use the special code for the plain HTTP requests that are sent to
126
df17fbafec8f nginx 0.3.10
Igor Sysoev <http://sysoev.ru>
parents: 122
diff changeset
85 * HTTPS port to distinguish it from 4XX in an error page redirection
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
86 */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
87 #define NGX_HTTP_TO_HTTPS 497
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
88
162
6be073125f2e nginx 0.3.28
Igor Sysoev <http://sysoev.ru>
parents: 146
diff changeset
89 /* 498 is the canceled code for the requests with invalid host name */
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
90
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
91 /*
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
92 * HTTP does not define the code for the case when a client closed
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
93 * the connection while we are processing its request so we introduce
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
94 * own code to log such situation when a client has closed the connection
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
95 * before we even try to send the HTTP header to it
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
96 */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
97 #define NGX_HTTP_CLIENT_CLOSED_REQUEST 499
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
98
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
99
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
100 #define NGX_HTTP_INTERNAL_SERVER_ERROR 500
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
101 #define NGX_HTTP_NOT_IMPLEMENTED 501
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
102 #define NGX_HTTP_BAD_GATEWAY 502
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
103 #define NGX_HTTP_SERVICE_UNAVAILABLE 503
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
104 #define NGX_HTTP_GATEWAY_TIME_OUT 504
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
105 #define NGX_HTTP_INSUFFICIENT_STORAGE 507
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
106
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
107
146
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
108 #define NGX_HTTP_LOWLEVEL_BUFFERED 0x000000f0
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
109 #define NGX_HTTP_WRITE_BUFFERED 0x00000010
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
110 #define NGX_HTTP_GZIP_BUFFERED 0x00000020
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
111 #define NGX_HTTP_SSI_BUFFERED 0x00000100
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
112 #define NGX_HTTP_COPY_BUFFERED 0x00000200
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
113
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
114
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
115 typedef enum {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
116 NGX_HTTP_INITING_REQUEST_STATE = 0,
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
117 NGX_HTTP_READING_REQUEST_STATE,
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
118 NGX_HTTP_PROCESS_REQUEST_STATE,
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
119
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
120 NGX_HTTP_CONNECT_UPSTREAM_STATE,
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
121 NGX_HTTP_WRITING_UPSTREAM_STATE,
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
122 NGX_HTTP_READING_UPSTREAM_STATE,
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
123
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
124 NGX_HTTP_WRITING_REQUEST_STATE,
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
125 NGX_HTTP_LINGERING_CLOSE_STATE,
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
126 NGX_HTTP_KEEPALIVE_STATE
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
127 } ngx_http_state_e;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
128
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
129
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
130 typedef struct {
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
131 ngx_str_t name;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
132 ngx_uint_t offset;
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
133 ngx_http_header_handler_pt handler;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
134 } ngx_http_header_t;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
135
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
136
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
137 typedef struct {
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
138 ngx_str_t name;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
139 ngx_uint_t offset;
118
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
140 } ngx_http_header_out_t;
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
141
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
142
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
143 typedef struct {
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
144 ngx_list_t headers;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
145
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
146 ngx_table_elt_t *host;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
147 ngx_table_elt_t *connection;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
148 ngx_table_elt_t *if_modified_since;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
149 ngx_table_elt_t *user_agent;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
150 ngx_table_elt_t *referer;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
151 ngx_table_elt_t *content_length;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
152 ngx_table_elt_t *content_type;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
153
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
154 ngx_table_elt_t *range;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
155
130
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
156 ngx_table_elt_t *transfer_encoding;
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
157
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
158 #if (NGX_HTTP_GZIP)
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
159 ngx_table_elt_t *accept_encoding;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
160 ngx_table_elt_t *via;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
161 #endif
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
162
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
163 ngx_table_elt_t *authorization;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
164
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
165 ngx_table_elt_t *keep_alive;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
166
122
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
167 #if (NGX_HTTP_PROXY || NGX_HTTP_REALIP)
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
168 ngx_table_elt_t *x_forwarded_for;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
169 #endif
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
170
122
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
171 #if (NGX_HTTP_REALIP)
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
172 ngx_table_elt_t *x_real_ip;
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
173 #endif
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
174
38
2879cd3a40cb nginx 0.1.19
Igor Sysoev <http://sysoev.ru>
parents: 34
diff changeset
175 #if (NGX_HTTP_HEADERS)
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
176 ngx_table_elt_t *accept;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
177 ngx_table_elt_t *accept_language;
38
2879cd3a40cb nginx 0.1.19
Igor Sysoev <http://sysoev.ru>
parents: 34
diff changeset
178 #endif
2879cd3a40cb nginx 0.1.19
Igor Sysoev <http://sysoev.ru>
parents: 34
diff changeset
179
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
180 #if (NGX_HTTP_DAV)
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
181 ngx_table_elt_t *depth;
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
182 ngx_table_elt_t *destination;
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
183 #endif
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
184
52
0d75d65c642f nginx 0.1.26
Igor Sysoev <http://sysoev.ru>
parents: 50
diff changeset
185 ngx_str_t user;
0d75d65c642f nginx 0.1.26
Igor Sysoev <http://sysoev.ru>
parents: 50
diff changeset
186 ngx_str_t passwd;
0d75d65c642f nginx 0.1.26
Igor Sysoev <http://sysoev.ru>
parents: 50
diff changeset
187
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
188 ngx_array_t cookies;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
189
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
190 size_t host_name_len;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
191 ssize_t content_length_n;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
192 time_t keep_alive_n;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
193
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
194 unsigned connection_type:2;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
195 unsigned msie:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
196 unsigned msie4:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
197 unsigned opera:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
198 unsigned gecko:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
199 unsigned konqueror:1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
200 } ngx_http_headers_in_t;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
201
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
202
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
203 typedef struct {
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
204 off_t start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
205 off_t end;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
206 ngx_str_t content_range;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
207 } ngx_http_range_t;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
208
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
209
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
210 typedef struct {
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
211 ngx_list_t headers;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
212
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
213 ngx_uint_t status;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
214 ngx_str_t status_line;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
215
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
216 ngx_table_elt_t *server;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
217 ngx_table_elt_t *date;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
218 ngx_table_elt_t *content_length;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
219 ngx_table_elt_t *content_encoding;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
220 ngx_table_elt_t *location;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
221 ngx_table_elt_t *last_modified;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
222 ngx_table_elt_t *content_range;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
223 ngx_table_elt_t *accept_ranges;
52
0d75d65c642f nginx 0.1.26
Igor Sysoev <http://sysoev.ru>
parents: 50
diff changeset
224 ngx_table_elt_t *www_authenticate;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
225 ngx_table_elt_t *expires;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
226 ngx_table_elt_t *etag;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
227
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
228 ngx_str_t content_type;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
229 ngx_str_t charset;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
230 ngx_array_t ranges;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
231
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
232 ngx_array_t cache_control;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
233
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
234 off_t content_length_n;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
235 time_t date_time;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
236 time_t last_modified_time;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
237 } ngx_http_headers_out_t;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
238
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
239
28
7ca9bdc82b3f nginx 0.1.14
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
240 typedef void (*ngx_http_client_body_handler_pt)(ngx_http_request_t *r);
7ca9bdc82b3f nginx 0.1.14
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
241
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
242 typedef struct {
28
7ca9bdc82b3f nginx 0.1.14
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
243 ngx_temp_file_t *temp_file;
7ca9bdc82b3f nginx 0.1.14
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
244 ngx_chain_t *bufs;
7ca9bdc82b3f nginx 0.1.14
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
245 ngx_buf_t *buf;
7ca9bdc82b3f nginx 0.1.14
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
246 size_t rest;
182
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
247 ngx_chain_t *to_write;
28
7ca9bdc82b3f nginx 0.1.14
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
248 ngx_http_client_body_handler_pt post_handler;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
249 } ngx_http_request_body_t;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
250
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
251
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
252 typedef struct {
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
253 ngx_http_request_t *request;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
254
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
255 ngx_buf_t **busy;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
256 ngx_int_t nbusy;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
257
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
258 ngx_buf_t **free;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
259 ngx_int_t nfree;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
260
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
261 ngx_uint_t pipeline; /* unsigned pipeline:1; */
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
262 } ngx_http_connection_t;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
263
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
264
142
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
265 typedef struct {
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
266 ngx_hash_t hash;
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
267 ngx_hash_wildcard_t *dns_wildcards;
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
268 } ngx_http_virtual_names_t;
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
269
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
270
118
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
271 typedef void (*ngx_http_cleanup_pt)(void *data);
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
272
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
273 typedef struct ngx_http_cleanup_s ngx_http_cleanup_t;
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
274
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
275 struct ngx_http_cleanup_s {
142
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
276 ngx_http_cleanup_pt handler;
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
277 void *data;
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
278 ngx_http_cleanup_t *next;
118
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
279 };
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
280
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
281
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
282 typedef struct ngx_http_postponed_request_s ngx_http_postponed_request_t;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
283
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
284 struct ngx_http_postponed_request_s {
84
991c6e4c7654 nginx 0.1.42
Igor Sysoev <http://sysoev.ru>
parents: 76
diff changeset
285 ngx_http_request_t *request;
991c6e4c7654 nginx 0.1.42
Igor Sysoev <http://sysoev.ru>
parents: 76
diff changeset
286 ngx_chain_t *out;
991c6e4c7654 nginx 0.1.42
Igor Sysoev <http://sysoev.ru>
parents: 76
diff changeset
287 ngx_http_postponed_request_t *next;
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
288 };
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
289
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
290
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
291 typedef ngx_int_t (*ngx_http_handler_pt)(ngx_http_request_t *r);
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
292 typedef void (*ngx_http_event_handler_pt)(ngx_http_request_t *r);
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
293
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
294
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
295 struct ngx_http_request_s {
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
296 uint32_t signature; /* "HTTP" */
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
297
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
298 ngx_connection_t *connection;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
299
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
300 void **ctx;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
301 void **main_conf;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
302 void **srv_conf;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
303 void **loc_conf;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
304
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
305 ngx_http_event_handler_pt read_event_handler;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
306 ngx_http_event_handler_pt write_event_handler;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
307
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
308 ngx_http_cache_t *cache;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
309
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
310 ngx_http_upstream_t *upstream;
28
7ca9bdc82b3f nginx 0.1.14
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
311
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
312 ngx_pool_t *pool;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
313 ngx_buf_t *header_in;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
314
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
315 ngx_http_headers_in_t headers_in;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
316 ngx_http_headers_out_t headers_out;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
317
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
318 ngx_http_request_body_t *request_body;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
319
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
320 time_t lingering_time;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
321 time_t start_time;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
322
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
323 ngx_uint_t method;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
324 ngx_uint_t http_version;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
325 ngx_uint_t http_major;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
326 ngx_uint_t http_minor;
126
df17fbafec8f nginx 0.3.10
Igor Sysoev <http://sysoev.ru>
parents: 122
diff changeset
327
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
328 ngx_str_t request_line;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
329 ngx_str_t uri;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
330 ngx_str_t args;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
331 ngx_str_t exten;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
332 ngx_str_t unparsed_uri;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
333
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
334 ngx_str_t method_name;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
335 ngx_str_t http_protocol;
126
df17fbafec8f nginx 0.3.10
Igor Sysoev <http://sysoev.ru>
parents: 122
diff changeset
336
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
337 ngx_chain_t *out;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
338 ngx_http_request_t *main;
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
339 ngx_http_request_t *parent;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
340 ngx_http_postponed_request_t *postponed;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
341
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
342 uint32_t in_addr;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
343 ngx_uint_t port;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
344 ngx_str_t *port_text; /* ":80" */
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
345 ngx_str_t server_name;
142
84910468f6de nginx 0.3.18
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
346 ngx_http_virtual_names_t *virtual_names;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
347
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
348 ngx_uint_t phase;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
349 ngx_int_t phase_handler;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
350 ngx_http_handler_pt content_handler;
92
45945fa8b8ba nginx 0.2.0
Igor Sysoev <http://sysoev.ru>
parents: 86
diff changeset
351 ngx_uint_t access_code;
34
aab2ea7c0458 nginx 0.1.17
Igor Sysoev <http://sysoev.ru>
parents: 28
diff changeset
352
122
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
353 ngx_http_variable_value_t *variables;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
354
144
e1c6ac408b68 nginx 0.3.19
Igor Sysoev <http://sysoev.ru>
parents: 142
diff changeset
355 size_t root_length;
e1c6ac408b68 nginx 0.3.19
Igor Sysoev <http://sysoev.ru>
parents: 142
diff changeset
356
76
da9a3b14312d nginx 0.1.38
Igor Sysoev <http://sysoev.ru>
parents: 72
diff changeset
357 size_t limit_rate;
da9a3b14312d nginx 0.1.38
Igor Sysoev <http://sysoev.ru>
parents: 72
diff changeset
358
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
359 /* used to learn the Apache compatible response length without a header */
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
360 size_t header_size;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
361
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
362 size_t request_length;
24
420dd3f9e703 nginx 0.1.12
Igor Sysoev <http://sysoev.ru>
parents: 18
diff changeset
363
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
364 void **err_ctx;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
365 ngx_uint_t err_status;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
366
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
367 ngx_http_connection_t *http_connection;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
368
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
369 ngx_http_log_handler_pt log_handler;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
370
118
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
371 ngx_http_cleanup_t *cleanup;
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
372
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
373 unsigned http_state:4;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
374
2
cc9f381affaa nginx 0.1.1
Igor Sysoev <http://sysoev.ru>
parents: 0
diff changeset
375 /* URI with "/." and on Win32 with "//" */
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
376 unsigned complex_uri:1;
34
aab2ea7c0458 nginx 0.1.17
Igor Sysoev <http://sysoev.ru>
parents: 28
diff changeset
377
2
cc9f381affaa nginx 0.1.1
Igor Sysoev <http://sysoev.ru>
parents: 0
diff changeset
378 /* URI with "%" */
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
379 unsigned quoted_uri:1;
34
aab2ea7c0458 nginx 0.1.17
Igor Sysoev <http://sysoev.ru>
parents: 28
diff changeset
380
aab2ea7c0458 nginx 0.1.17
Igor Sysoev <http://sysoev.ru>
parents: 28
diff changeset
381 /* URI with "+" */
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
382 unsigned plus_in_uri:1;
34
aab2ea7c0458 nginx 0.1.17
Igor Sysoev <http://sysoev.ru>
parents: 28
diff changeset
383
38
2879cd3a40cb nginx 0.1.19
Igor Sysoev <http://sysoev.ru>
parents: 34
diff changeset
384 /* URI with "\0" or "%00" */
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
385 unsigned zero_in_uri:1;
38
2879cd3a40cb nginx 0.1.19
Igor Sysoev <http://sysoev.ru>
parents: 34
diff changeset
386
60
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
387 unsigned invalid_header:1;
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
388
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
389 unsigned valid_location:1;
54
bcb5fce0b038 nginx 0.1.27
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
390 unsigned valid_unparsed_uri:1;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
391 unsigned uri_changed:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
392 unsigned uri_changes:4;
34
aab2ea7c0458 nginx 0.1.17
Igor Sysoev <http://sysoev.ru>
parents: 28
diff changeset
393
182
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
394 unsigned request_body_in_single_buf:1;
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
395 unsigned request_body_in_file_only:1;
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
396 unsigned request_body_in_persistent_file:1;
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
397 unsigned request_body_delete_incomplete_file:1;
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
398 unsigned request_body_file_group_access:1;
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
399 unsigned request_body_file_log_level:3;
182
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 180
diff changeset
400
146
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
401 unsigned fast_subrequest:1;
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 144
diff changeset
402
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
403 unsigned low_case_exten:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
404 unsigned header_timeout_set:1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
405
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
406 unsigned proxy:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
407 unsigned bypass_cache:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
408 unsigned no_cache:1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
409
122
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
410 #if (NGX_HTTP_REALIP)
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
411
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
412 /*
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
413 * instead of using the request context data in ngx_http_realip_module
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
414 * we use the single bit in the request structure
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
415 */
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
416 unsigned realip_set:1;
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
417
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
418 #endif
d25a1d6034f1 nginx 0.3.8
Igor Sysoev <http://sysoev.ru>
parents: 118
diff changeset
419
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
420 #if 0
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
421 unsigned cachable:1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
422 #endif
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
423
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
424 unsigned pipeline:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
425 unsigned plain_http:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
426 unsigned chunked:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
427 unsigned header_only:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
428 unsigned keepalive:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
429 unsigned lingering_close:1;
86
962c43960644 nginx 0.1.43
Igor Sysoev <http://sysoev.ru>
parents: 84
diff changeset
430 unsigned discard_body:1;
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
431 unsigned internal:1;
178
87699398f955 nginx 0.3.36
Igor Sysoev <http://sysoev.ru>
parents: 168
diff changeset
432 unsigned post_action:1;
87699398f955 nginx 0.3.36
Igor Sysoev <http://sysoev.ru>
parents: 168
diff changeset
433 unsigned request_complete:1;
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 56
diff changeset
434 unsigned done:1;
72
b31656313b59 nginx 0.1.36
Igor Sysoev <http://sysoev.ru>
parents: 62
diff changeset
435 unsigned utf8:1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
436
62
0790a8599248 nginx 0.1.31
Igor Sysoev <http://sysoev.ru>
parents: 60
diff changeset
437 unsigned main_filter_need_in_memory:1;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
438 unsigned filter_need_in_memory:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
439 unsigned filter_need_temporary:1;
130
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
440 unsigned allow_ranges:1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
441
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
442 #if (NGX_STAT_STUB)
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
443 unsigned stat_reading:1;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
444 unsigned stat_writing:1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
445 #endif
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
446
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
447 /* used to parse HTTP headers */
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
448 ngx_uint_t state;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
449 u_char *uri_start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
450 u_char *uri_end;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
451 u_char *uri_ext;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
452 u_char *args_start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
453 u_char *request_start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
454 u_char *request_end;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
455 u_char *method_end;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
456 u_char *schema_start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
457 u_char *schema_end;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
458 u_char *host_start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
459 u_char *host_end;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
460 u_char *port_start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
461 u_char *port_end;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
462 u_char *header_name_start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
463 u_char *header_name_end;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
464 u_char *header_start;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 46
diff changeset
465 u_char *header_end;
56
3050baa54a26 nginx 0.1.28
Igor Sysoev <http://sysoev.ru>
parents: 54
diff changeset
466 ngx_uint_t header_hash;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
467 };
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
468
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
469
118
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
470 extern ngx_http_header_t ngx_http_headers_in[];
644a7935144b nginx 0.3.6
Igor Sysoev <http://sysoev.ru>
parents: 92
diff changeset
471 extern ngx_http_header_out_t ngx_http_headers_out[];
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
472
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
473
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
474 #endif /* _NGX_HTTP_REQUEST_H_INCLUDED_ */