comparison src/http/ngx_http_request.h @ 517:8fbdd980b527

Merge with current.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 13 Jul 2009 23:56:24 +0400
parents 44a61c599bb2 f39b9e29530d
children 40fd8d7b82f9
comparison
equal deleted inserted replaced
424:44a61c599bb2 517:8fbdd980b527
8 #define _NGX_HTTP_REQUEST_H_INCLUDED_ 8 #define _NGX_HTTP_REQUEST_H_INCLUDED_
9 9
10 10
11 #define NGX_HTTP_MAX_URI_CHANGES 10 11 #define NGX_HTTP_MAX_URI_CHANGES 10
12 #define NGX_HTTP_MAX_SUBREQUESTS 50 12 #define NGX_HTTP_MAX_SUBREQUESTS 50
13 #define NGX_HTTP_MAX_CAPTURES 9
13 14
14 /* must be 2^n */ 15 /* must be 2^n */
15 #define NGX_HTTP_LC_HEADER_LEN 32 16 #define NGX_HTTP_LC_HEADER_LEN 32
16 17
17 18
56 #define NGX_HTTP_PARSE_INVALID_HEADER 13 57 #define NGX_HTTP_PARSE_INVALID_HEADER 13
57 58
58 59
59 #define NGX_HTTP_ZERO_IN_URI 1 60 #define NGX_HTTP_ZERO_IN_URI 1
60 #define NGX_HTTP_SUBREQUEST_IN_MEMORY 2 61 #define NGX_HTTP_SUBREQUEST_IN_MEMORY 2
62 #define NGX_HTTP_SUBREQUEST_WAITED 4
61 63
62 64
63 #define NGX_HTTP_OK 200 65 #define NGX_HTTP_OK 200
64 #define NGX_HTTP_CREATED 201 66 #define NGX_HTTP_CREATED 201
65 #define NGX_HTTP_NO_CONTENT 204 67 #define NGX_HTTP_NO_CONTENT 204
319 ngx_chain_t *out; 321 ngx_chain_t *out;
320 ngx_http_postponed_request_t *next; 322 ngx_http_postponed_request_t *next;
321 }; 323 };
322 324
323 325
326 typedef struct ngx_http_posted_request_s ngx_http_posted_request_t;
327
328 struct ngx_http_posted_request_s {
329 ngx_http_request_t *request;
330 ngx_http_posted_request_t *next;
331 };
332
333
324 typedef ngx_int_t (*ngx_http_handler_pt)(ngx_http_request_t *r); 334 typedef ngx_int_t (*ngx_http_handler_pt)(ngx_http_request_t *r);
325 typedef void (*ngx_http_event_handler_pt)(ngx_http_request_t *r); 335 typedef void (*ngx_http_event_handler_pt)(ngx_http_request_t *r);
326 336
327 337
328 struct ngx_http_request_s { 338 struct ngx_http_request_s {
336 void **loc_conf; 346 void **loc_conf;
337 347
338 ngx_http_event_handler_pt read_event_handler; 348 ngx_http_event_handler_pt read_event_handler;
339 ngx_http_event_handler_pt write_event_handler; 349 ngx_http_event_handler_pt write_event_handler;
340 350
351 #if (NGX_HTTP_CACHE)
341 ngx_http_cache_t *cache; 352 ngx_http_cache_t *cache;
353 #endif
342 354
343 ngx_http_upstream_t *upstream; 355 ngx_http_upstream_t *upstream;
344 ngx_array_t *upstream_states; 356 ngx_array_t *upstream_states;
345 /* of ngx_http_upstream_state_t */ 357 /* of ngx_http_upstream_state_t */
346 358
371 ngx_chain_t *out; 383 ngx_chain_t *out;
372 ngx_http_request_t *main; 384 ngx_http_request_t *main;
373 ngx_http_request_t *parent; 385 ngx_http_request_t *parent;
374 ngx_http_postponed_request_t *postponed; 386 ngx_http_postponed_request_t *postponed;
375 ngx_http_post_subrequest_t *post_subrequest; 387 ngx_http_post_subrequest_t *post_subrequest;
376 388 ngx_http_posted_request_t *posted_requests;
377 uint32_t in_addr; 389
378 ngx_uint_t port;
379 ngx_str_t *port_text; /* ":80" */
380 ngx_http_virtual_names_t *virtual_names; 390 ngx_http_virtual_names_t *virtual_names;
381 391
382 ngx_int_t phase_handler; 392 ngx_int_t phase_handler;
383 ngx_http_handler_pt content_handler; 393 ngx_http_handler_pt content_handler;
384 ngx_uint_t access_code; 394 ngx_uint_t access_code;
385 395
386 ngx_http_variable_value_t *variables; 396 ngx_http_variable_value_t *variables;
397
398 #if (NGX_PCRE)
399 ngx_uint_t ncaptures;
400 int *captures;
401 u_char *captures_data;
402 #endif
387 403
388 size_t limit_rate; 404 size_t limit_rate;
389 405
390 /* used to learn the Apache compatible response length without a header */ 406 /* used to learn the Apache compatible response length without a header */
391 size_t header_size; 407 size_t header_size;
426 unsigned request_body_in_persistent_file:1; 442 unsigned request_body_in_persistent_file:1;
427 unsigned request_body_in_clean_file:1; 443 unsigned request_body_in_clean_file:1;
428 unsigned request_body_file_group_access:1; 444 unsigned request_body_file_group_access:1;
429 unsigned request_body_file_log_level:3; 445 unsigned request_body_file_log_level:3;
430 446
431 unsigned fast_subrequest:1;
432 unsigned subrequest_in_memory:1; 447 unsigned subrequest_in_memory:1;
433 448 unsigned waited:1;
449
450 #if (NGX_HTTP_CACHE)
451 unsigned cached:1;
452 #endif
434 unsigned gzip:2; 453 unsigned gzip:2;
435 454
436 unsigned proxy:1; 455 unsigned proxy:1;
437 unsigned bypass_cache:1; 456 unsigned bypass_cache:1;
438 unsigned no_cache:1; 457 unsigned no_cache:1;
439 458
440 /* 459 /*
441 * instead of using the request context data in ngx_http_limit_zone_module 460 * instead of using the request context data in
442 * we use the single bit in the request structure 461 * ngx_http_limit_zone_module and ngx_http_limit_req_module
462 * we use the single bits in the request structure
443 */ 463 */
444 unsigned limit_zone_set:1; 464 unsigned limit_zone_set:1;
465 unsigned limit_req_set:1;
445 466
446 #if 0 467 #if 0
447 unsigned cacheable:1; 468 unsigned cacheable:1;
448 #endif 469 #endif
449 470
455 unsigned keepalive:1; 476 unsigned keepalive:1;
456 unsigned lingering_close:1; 477 unsigned lingering_close:1;
457 unsigned discard_body:1; 478 unsigned discard_body:1;
458 unsigned internal:1; 479 unsigned internal:1;
459 unsigned error_page:1; 480 unsigned error_page:1;
481 unsigned ignore_content_encoding:1;
482 unsigned filter_finalize:1;
460 unsigned post_action:1; 483 unsigned post_action:1;
461 unsigned request_complete:1; 484 unsigned request_complete:1;
462 unsigned request_output:1; 485 unsigned request_output:1;
463 unsigned header_sent:1; 486 unsigned header_sent:1;
464 unsigned expect_tested:1; 487 unsigned expect_tested:1;
465 unsigned root_tested:1; 488 unsigned root_tested:1;
466 unsigned done:1; 489 unsigned done:1;
467 unsigned logged:1; 490 unsigned logged:1;
468 unsigned utf8:1;
469 491
470 unsigned buffered:4; 492 unsigned buffered:4;
471 493
472 unsigned main_filter_need_in_memory:1; 494 unsigned main_filter_need_in_memory:1;
473 unsigned filter_need_in_memory:1; 495 unsigned filter_need_in_memory:1;