comparison src/http/ngx_http.h @ 91:637625a2acdb

nginx-0.0.1-2003-05-19-20:39:14 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 19 May 2003 16:39:14 +0000
parents 29bf798b583f
children a23d010f356d
comparison
equal deleted inserted replaced
90:37530da31268 91:637625a2acdb
10 #include <ngx_hunk.h> 10 #include <ngx_hunk.h>
11 #include <ngx_files.h> 11 #include <ngx_files.h>
12 #include <ngx_connection.h> 12 #include <ngx_connection.h>
13 #include <ngx_conf_file.h> 13 #include <ngx_conf_file.h>
14 14
15 /* STUB */ 15 #include <ngx_http_request.h>
16 #include <ngx_event_timer.h>
17
18 #define NGX_HTTP_VERSION_9 9
19 #define NGX_HTTP_VERSION_10 1000
20 #define NGX_HTTP_VERSION_11 1001
21
22 #define NGX_HTTP_GET 1
23 #define NGX_HTTP_HEAD 2
24 #define NGX_HTTP_POST 3
25
26 #define NGX_HTTP_CONN_CLOSE 0
27 #define NGX_HTTP_CONN_KEEP_ALIVE 1
28
29
30 #define NGX_HTTP_PARSE_HEADER_DONE 1
31 #define NGX_HTTP_PARSE_INVALID_METHOD 10
32 #define NGX_HTTP_PARSE_INVALID_REQUEST 11
33 #define NGX_HTTP_PARSE_TOO_LONG_URI 12
34 #define NGX_HTTP_PARSE_INVALID_09_METHOD 13
35 #define NGX_HTTP_PARSE_INVALID_HEADER 14
36 #define NGX_HTTP_PARSE_TOO_LONG_HEADER 15
37 #define NGX_HTTP_PARSE_NO_HOST_HEADER 16
38 #define NGX_HTTP_PARSE_INVALID_CL_HEADER 17
39
40
41 #define NGX_HTTP_OK 200
42
43 #define NGX_HTTP_SPECIAL_RESPONSE 300
44 #define NGX_HTTP_MOVED_PERMANENTLY 301
45 #define NGX_HTTP_MOVED_TEMPORARILY 302
46 #define NGX_HTTP_NOT_MODIFIED 304
47
48 #define NGX_HTTP_BAD_REQUEST 400
49 #define NGX_HTTP_FORBIDDEN 403
50 #define NGX_HTTP_NOT_FOUND 404
51 #define NGX_HTTP_REQUEST_TIME_OUT 408
52 #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414
53
54 #define NGX_HTTP_INTERNAL_SERVER_ERROR 500
55 #define NGX_HTTP_NOT_IMPLEMENTED 501
56 #define NGX_HTTP_BAD_GATEWAY 502
57 #define NGX_HTTP_SERVICE_UNAVAILABLE 503
58 #define NGX_HTTP_GATEWAY_TIME_OUT 504
59
60
61
62 #define NGX_HTTP_STATIC_HANDLER 0
63 #define NGX_HTTP_DIRECTORY_HANDLER 1
64
65
66 typedef struct {
67 ngx_str_t name;
68 int offset;
69 } ngx_http_header_t;
70
71
72 typedef struct {
73 size_t host_name_len;
74 ssize_t content_length_n;
75
76 ngx_table_elt_t *host;
77 ngx_table_elt_t *connection;
78 ngx_table_elt_t *if_modified_since;
79 ngx_table_elt_t *content_length;
80 ngx_table_elt_t *accept_encoding;
81
82 ngx_table_elt_t *user_agent;
83
84 ngx_table_t *headers;
85 } ngx_http_headers_in_t;
86
87
88 typedef struct {
89 ngx_chain_t chain[4];
90 ngx_hunk_t *header_out;
91 ngx_hunk_t *hunk;
92 ngx_hunk_t *file_hunk;
93 ngx_file_t temp_file;
94 ngx_path_t *temp_path;
95 off_t offset;
96 char *header_in_pos;
97 } ngx_http_request_body_t;
98
99
100 typedef struct {
101 int status;
102 ngx_str_t status_line;
103
104 ngx_table_elt_t *server;
105 ngx_table_elt_t *date;
106 ngx_table_elt_t *content_type;
107 ngx_table_elt_t *location;
108 ngx_table_elt_t *last_modified;
109
110 ngx_table_t *headers;
111
112 off_t content_length;
113 char *charset;
114 char *etag;
115 time_t date_time;
116 time_t last_modified_time;
117 } ngx_http_headers_out_t;
118
119
120 typedef struct ngx_http_request_s ngx_http_request_t;
121
122 struct ngx_http_request_s {
123 ngx_connection_t *connection;
124
125 void **ctx;
126 void **srv_conf;
127 void **loc_conf;
128
129 ngx_file_t file;
130
131 ngx_pool_t *pool;
132 ngx_hunk_t *header_in;
133 ngx_http_request_body_t *request_body;
134
135 ngx_http_headers_in_t headers_in;
136 ngx_http_headers_out_t headers_out;
137
138 int (*handler)(ngx_http_request_t *r);
139
140 time_t lingering_time;
141
142 int method;
143 int http_version;
144 int http_major;
145 int http_minor;
146
147 ngx_str_t request_line;
148 ngx_str_t uri;
149 ngx_str_t args;
150 ngx_str_t exten;
151 ngx_http_request_t *main;
152
153 u_int in_addr;
154
155 int port;
156 ngx_str_t port_name;
157
158 int filter;
159
160 char *discarded_buffer;
161
162 ngx_str_t path;
163 int path_err;
164
165 unsigned proxy:1;
166 unsigned cachable:1;
167 unsigned pipeline:1;
168 unsigned keepalive:1;
169 unsigned lingering_close:1;
170
171 unsigned header_read:1;
172 unsigned header_timeout_set:1;
173
174 unsigned logging:1;
175
176 unsigned header_only:1;
177 unsigned unusual_uri:1; /* URI is not started with '/' - "GET http://" */
178 unsigned complex_uri:1; /* URI with "/." or with "//" (WIN32) */
179 unsigned path_not_found:1;
180 #ifdef NGX_EVENT
181 unsigned write_level_event:1;
182 #endif
183
184 int state;
185 char *uri_start;
186 char *uri_end;
187 char *uri_ext;
188 char *args_start;
189 char *request_start;
190 char *request_end;
191 char *header_name_start;
192 char *header_name_end;
193 char *header_start;
194 char *header_end;
195 #ifdef NGX_EVENT
196 int (*state_handler)(ngx_http_request_t *r);
197 #endif
198 };
199 16
200 17
201 typedef struct { 18 typedef struct {
202 char *action; 19 char *action;
203 char *client; 20 char *client;
261 78
262 int ngx_http_discard_body(ngx_http_request_t *r); 79 int ngx_http_discard_body(ngx_http_request_t *r);
263 80
264 81
265 82
83 extern ngx_module_t ngx_http_module;
84
266 85
267 extern int ngx_max_module; 86 extern int ngx_max_module;
268 extern ngx_array_t ngx_http_servers;
269 87
270
271 extern int ngx_http_post_accept_timeout;
272 extern int ngx_http_connection_pool_size;
273 extern int ngx_http_request_pool_size;
274 extern int ngx_http_client_header_timeout;
275 extern int ngx_http_client_header_buffer_size;
276 extern int ngx_http_large_client_header;
277 extern int ngx_http_discarded_buffer_size;
278
279 extern int ngx_http_url_in_error_log;
280 88
281 extern ngx_array_t ngx_http_translate_handlers; 89 extern ngx_array_t ngx_http_translate_handlers;
282 extern ngx_array_t ngx_http_index_handlers; 90 extern ngx_array_t ngx_http_index_handlers;
283 91
284 extern int (*ngx_http_top_header_filter) (ngx_http_request_t *r); 92 extern int (*ngx_http_top_header_filter) (ngx_http_request_t *r);