comparison src/http/ngx_http.h @ 26:53cb81681040

nginx-0.0.1-2002-12-15-09:25:09 import
author Igor Sysoev <igor@sysoev.ru>
date Sun, 15 Dec 2002 06:25:09 +0000
parents 77c7629a2627
children d45effe5854c
comparison
equal deleted inserted replaced
25:a8b156554dfe 26:53cb81681040
30 #define NGX_HTTP_PARSE_INVALID_HEADER 14 30 #define NGX_HTTP_PARSE_INVALID_HEADER 14
31 31
32 32
33 #define NGX_HTTP_OK 200 33 #define NGX_HTTP_OK 200
34 #define NGX_HTTP_SPECIAL_RESPONSE 300 34 #define NGX_HTTP_SPECIAL_RESPONSE 300
35 #define NGX_HTTP_MOVED_PERMANENTLY 302 35 #define NGX_HTTP_MOVED_PERMANENTLY 301
36 #define NGX_HTTP_MOVED_TEMPORARILY 302
37 #define NGX_HTTP_NOT_MODIFIED 304
36 #define NGX_HTTP_BAD_REQUEST 400 38 #define NGX_HTTP_BAD_REQUEST 400
37 #define NGX_HTTP_NOT_FOUND 404 39 #define NGX_HTTP_NOT_FOUND 404
38 #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414 40 #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414
39 #define NGX_HTTP_INTERNAL_SERVER_ERROR 503 41 #define NGX_HTTP_INTERNAL_SERVER_ERROR 500
40 42
41 43
42 #define NGX_HTTP_STATIC_HANDLER 0 44 #define NGX_HTTP_STATIC_HANDLER 0
43 #define NGX_HTTP_DIRECTORY_HANDLER 1 45 #define NGX_HTTP_DIRECTORY_HANDLER 1
44 46
57 ngx_msec_t header_timeout; 59 ngx_msec_t header_timeout;
58 ngx_msec_t lingering_timeout; 60 ngx_msec_t lingering_timeout;
59 time_t lingering_time; 61 time_t lingering_time;
60 } ngx_http_server_t; 62 } ngx_http_server_t;
61 63
64
62 typedef struct { 65 typedef struct {
63 int len; 66 int len;
64 char *data; 67 char *data;
65 int offset; 68 int offset;
66 } ngx_http_header_t; 69 } ngx_http_header_t;
67 70
71
68 typedef struct { 72 typedef struct {
69 ngx_table_elt_t *host; 73 ngx_table_elt_t *host;
70 ngx_table_elt_t *connection; 74 ngx_table_elt_t *connection;
75 ngx_table_elt_t *if_modified_since;
71 ngx_table_elt_t *user_agent; 76 ngx_table_elt_t *user_agent;
72 ngx_table_elt_t *accept_encoding; 77 ngx_table_elt_t *accept_encoding;
73 78
74 ngx_table_t *headers; 79 ngx_table_t *headers;
75 } ngx_http_headers_in_t; 80 } ngx_http_headers_in_t;
81
76 82
77 typedef struct { 83 typedef struct {
78 int status; 84 int status;
79 ngx_str_t status_line; 85 ngx_str_t status_line;
80 86
91 char *etag; 97 char *etag;
92 time_t date_time; 98 time_t date_time;
93 time_t last_modified_time; 99 time_t last_modified_time;
94 } ngx_http_headers_out_t; 100 } ngx_http_headers_out_t;
95 101
102
96 typedef struct ngx_http_request_s ngx_http_request_t; 103 typedef struct ngx_http_request_s ngx_http_request_t;
97 104
98 struct ngx_http_request_s { 105 struct ngx_http_request_s {
99 ngx_str_t filename; 106 ngx_file_t file;
100 107
108 #if 0
109 ngx_str_t filename;
110 ngx_file_info_t fileinfo;
101 ngx_fd_t fd; 111 ngx_fd_t fd;
112 int filename_len;
113 #endif
102 114
103 void **ctx; 115 void **ctx;
104 void **loc_conf; 116 void **loc_conf;
105 void **srv_conf; 117 void **srv_conf;
106 118
108 ngx_hunk_t *header_in; 120 ngx_hunk_t *header_in;
109 121
110 ngx_http_headers_in_t headers_in; 122 ngx_http_headers_in_t headers_in;
111 ngx_http_headers_out_t headers_out; 123 ngx_http_headers_out_t headers_out;
112 124
113 int filename_len;
114 int (*handler)(ngx_http_request_t *r); 125 int (*handler)(ngx_http_request_t *r);
115
116 ngx_file_info_t fileinfo;
117 126
118 int method; 127 int method;
119 128
120 time_t lingering_time; 129 time_t lingering_time;
121 130
144 153
145 unsigned logging:1; 154 unsigned logging:1;
146 155
147 unsigned header_only:1; 156 unsigned header_only:1;
148 unsigned unusual_uri:1; /* URI is not started with '/' - "GET http://" */ 157 unsigned unusual_uri:1; /* URI is not started with '/' - "GET http://" */
149 unsigned complex_uri:1; /* URI with "./" or with "//" */ 158 unsigned complex_uri:1; /* URI with "/." or with "//" (WIN32) */
150 159
151 int state; 160 int state;
152 char *uri_start; 161 char *uri_start;
153 char *uri_end; 162 char *uri_end;
154 char *uri_ext; 163 char *uri_ext;
161 #ifdef NGX_EVENT 170 #ifdef NGX_EVENT
162 int (*state_handler)(ngx_http_request_t *r); 171 int (*state_handler)(ngx_http_request_t *r);
163 #endif 172 #endif
164 }; 173 };
165 174
175
166 typedef struct { 176 typedef struct {
167 char *action; 177 char *action;
168 char *client; 178 char *client;
169 char *url; 179 char *url;
170 } ngx_http_log_ctx_t; 180 } ngx_http_log_ctx_t;
179 189
180 int (*init_module)(ngx_pool_t *p); 190 int (*init_module)(ngx_pool_t *p);
181 191
182 int (*translate_handler)(ngx_http_request_t *r); 192 int (*translate_handler)(ngx_http_request_t *r);
183 193
184 int (*init_output_body_filter)(int (**next_filter) 194 int (*output_header_filter) (ngx_http_request_t *r);
195 int (*next_output_header_filter) (ngx_http_request_t *r);
196
197 int (*output_body_filter)();
198 int (*next_output_body_filter)
199 (ngx_http_request_t *r, ngx_chain_t *ch);
200
201 #if 0
202 int (*next_output_body_filter)(int (**next_filter)
185 (ngx_http_request_t *r, ngx_chain_t *ch)); 203 (ngx_http_request_t *r, ngx_chain_t *ch));
204 #endif
186 } ngx_http_module_t; 205 } ngx_http_module_t;
206
187 207
188 #define NGX_HTTP_MODULE 0 208 #define NGX_HTTP_MODULE 0
189 209
190 #define ngx_get_module_loc_conf(r, module) r->loc_conf[module.index] 210 #define ngx_get_module_loc_conf(r, module) r->loc_conf[module.index]
191 #define ngx_get_module_ctx(r, module) r->ctx[module.index] 211 #define ngx_get_module_ctx(r, module) r->ctx[module.index]
202 #define NGX_INDEX "index.html" 222 #define NGX_INDEX "index.html"
203 223
204 224
205 /* STUB */ 225 /* STUB */
206 int ngx_http_init(ngx_pool_t *pool, ngx_log_t *log); 226 int ngx_http_init(ngx_pool_t *pool, ngx_log_t *log);
227 /**/
207 228
208 int ngx_http_init_connection(ngx_connection_t *c); 229 int ngx_http_init_connection(ngx_connection_t *c);
209 230
210 231
232 int ngx_http_discard_body(ngx_http_request_t *r);
233
234
211 extern int ngx_max_module; 235 extern int ngx_max_module;
212 236
213 extern ngx_http_module_t *ngx_http_modules[]; 237 extern ngx_http_module_t *ngx_http_modules[];
214 238
215 239