comparison src/http/ngx_http_request.h @ 99:a059e1aa65d4

nginx-0.0.1-2003-06-02-19:24:30 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 02 Jun 2003 15:24:30 +0000
parents a23d010f356d
children e29909bd9b8a
comparison
equal deleted inserted replaced
98:c9b243802a17 99:a059e1aa65d4
38 #define NGX_HTTP_PARSE_NO_HOST_HEADER 16 38 #define NGX_HTTP_PARSE_NO_HOST_HEADER 16
39 #define NGX_HTTP_PARSE_INVALID_CL_HEADER 17 39 #define NGX_HTTP_PARSE_INVALID_CL_HEADER 17
40 40
41 41
42 #define NGX_HTTP_OK 200 42 #define NGX_HTTP_OK 200
43 #define NGX_HTTP_PARTIAL_CONTENT 206
43 44
44 #define NGX_HTTP_SPECIAL_RESPONSE 300 45 #define NGX_HTTP_SPECIAL_RESPONSE 300
45 #define NGX_HTTP_MOVED_PERMANENTLY 301 46 #define NGX_HTTP_MOVED_PERMANENTLY 301
46 #define NGX_HTTP_MOVED_TEMPORARILY 302 47 #define NGX_HTTP_MOVED_TEMPORARILY 302
47 #define NGX_HTTP_NOT_MODIFIED 304 48 #define NGX_HTTP_NOT_MODIFIED 304
50 #define NGX_HTTP_FORBIDDEN 403 51 #define NGX_HTTP_FORBIDDEN 403
51 #define NGX_HTTP_NOT_FOUND 404 52 #define NGX_HTTP_NOT_FOUND 404
52 #define NGX_HTTP_NOT_ALLOWED 405 53 #define NGX_HTTP_NOT_ALLOWED 405
53 #define NGX_HTTP_REQUEST_TIME_OUT 408 54 #define NGX_HTTP_REQUEST_TIME_OUT 408
54 #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414 55 #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414
56 #define NGX_HTTP_RANGE_NOT_SATISFIABLE 416
55 57
56 #define NGX_HTTP_INTERNAL_SERVER_ERROR 500 58 #define NGX_HTTP_INTERNAL_SERVER_ERROR 500
57 #define NGX_HTTP_NOT_IMPLEMENTED 501 59 #define NGX_HTTP_NOT_IMPLEMENTED 501
58 #define NGX_HTTP_BAD_GATEWAY 502 60 #define NGX_HTTP_BAD_GATEWAY 502
59 #define NGX_HTTP_SERVICE_UNAVAILABLE 503 61 #define NGX_HTTP_SERVICE_UNAVAILABLE 503
77 79
78 ngx_table_elt_t *host; 80 ngx_table_elt_t *host;
79 ngx_table_elt_t *connection; 81 ngx_table_elt_t *connection;
80 ngx_table_elt_t *if_modified_since; 82 ngx_table_elt_t *if_modified_since;
81 ngx_table_elt_t *content_length; 83 ngx_table_elt_t *content_length;
84 ngx_table_elt_t *range;
85
82 ngx_table_elt_t *accept_encoding; 86 ngx_table_elt_t *accept_encoding;
83 87
84 ngx_table_elt_t *user_agent; 88 ngx_table_elt_t *user_agent;
85 89
86 ngx_table_t *headers; 90 ngx_table_t *headers;
98 char *header_in_pos; 102 char *header_in_pos;
99 } ngx_http_request_body_t; 103 } ngx_http_request_body_t;
100 104
101 105
102 typedef struct { 106 typedef struct {
107 off_t start;
108 off_t end;
109 ngx_str_t content_range;
110 } ngx_http_range_t;
111
112
113 typedef struct {
103 int status; 114 int status;
104 ngx_str_t status_line; 115 ngx_str_t status_line;
105 116
106 ngx_table_elt_t *server; 117 ngx_table_elt_t *server;
107 ngx_table_elt_t *date; 118 ngx_table_elt_t *date;
108 ngx_table_elt_t *content_type; 119 ngx_table_elt_t *content_type;
109 ngx_table_elt_t *location; 120 ngx_table_elt_t *location;
110 ngx_table_elt_t *last_modified; 121 ngx_table_elt_t *last_modified;
122 ngx_table_elt_t *content_range;
123
124 ngx_str_t charset;
125 ngx_array_t ranges;
111 126
112 ngx_table_t *headers; 127 ngx_table_t *headers;
113 128
114 off_t content_length; 129 off_t content_length;
115 char *charset;
116 char *etag; 130 char *etag;
117 time_t date_time; 131 time_t date_time;
118 time_t last_modified_time; 132 time_t last_modified_time;
119 } ngx_http_headers_out_t; 133 } ngx_http_headers_out_t;
120 134
138 ngx_http_headers_in_t headers_in; 152 ngx_http_headers_in_t headers_in;
139 ngx_http_headers_out_t headers_out; 153 ngx_http_headers_out_t headers_out;
140 154
141 int (*handler)(ngx_http_request_t *r); 155 int (*handler)(ngx_http_request_t *r);
142 156
143 time_t lingering_time; 157 time_t lingering_time;
144 158
145 int method; 159 int method;
146 int http_version; 160 int http_version;
147 int http_major; 161 int http_major;
148 int http_minor; 162 int http_minor;
159 int port; 173 int port;
160 ngx_str_t *port_name; /* ":80" */ 174 ngx_str_t *port_name; /* ":80" */
161 ngx_str_t *server_name; 175 ngx_str_t *server_name;
162 ngx_array_t *virtual_names; 176 ngx_array_t *virtual_names;
163 177
164 int filter; 178
165 179 char *discarded_buffer;
166 char *discarded_buffer; 180
167 181 ngx_str_t path;
168 ngx_str_t path; 182 int path_err;
169 int path_err; 183
170 184 /* URI is not started with '/' - "GET http://" */
171 unsigned proxy:1; 185 unsigned unusual_uri:1;
172 unsigned cachable:1; 186 /* URI with "/.", "%" and on Win32 with "//" */
173 unsigned pipeline:1; 187 unsigned complex_uri:1;
174 unsigned keepalive:1; 188 unsigned header_timeout_set:1;
175 unsigned lingering_close:1; 189
176 190 unsigned proxy:1;
177 unsigned header_read:1; 191 #if 0
178 unsigned header_timeout_set:1; 192 unsigned cachable:1;
179
180 unsigned logging:1;
181
182 unsigned header_only:1;
183 unsigned unusual_uri:1; /* URI is not started with '/' - "GET http://" */
184 unsigned complex_uri:1; /* URI with "/." or with "//" (WIN32) */
185 unsigned path_not_found:1;
186 #ifdef NGX_EVENT
187 unsigned write_level_event:1;
188 #endif 193 #endif
189 194 unsigned pipeline:1;
190 int state; 195
191 char *uri_start; 196 unsigned chunked:1;
192 char *uri_end; 197 unsigned header_only:1;
193 char *uri_ext; 198 unsigned keepalive:1;
194 char *args_start; 199 unsigned lingering_close:1;
195 char *request_start; 200
196 char *request_end; 201 /* TODO: use filter or bits ???? */
197 char *header_name_start; 202 int filter;
198 char *header_name_end; 203
199 char *header_start; 204 /* used to parse HTTP headers */
200 char *header_end; 205 int state;
201 #ifdef NGX_EVENT 206 char *uri_start;
202 int (*state_handler)(ngx_http_request_t *r); 207 char *uri_end;
203 #endif 208 char *uri_ext;
209 char *args_start;
210 char *request_start;
211 char *request_end;
212 char *header_name_start;
213 char *header_name_end;
214 char *header_start;
215 char *header_end;
204 }; 216 };
205 217
206 218
207 #endif /* _NGX_HTTP_REQUEST_H_INCLUDED_ */ 219 #endif /* _NGX_HTTP_REQUEST_H_INCLUDED_ */