Mercurial > hg > nginx
annotate src/http/ngx_http.h @ 9306:e46e1ea89ccd
Upstream: $upstream_cache_age variable.
The variable reflects response age, including the time spent in the
cache and the upstream response age as obtained from the "Age" header.
If the response wasn't cached, the variable reflects the "Age" header
of the upstream response.
If the intended use case is to cache responses as per HTTP/1.1 caching
model, the $upstream_cache_age variable can be used to provide the "Age"
header with the "add_header" directive, such as:
add_header Age $upstream_cache_age;
This now removes the "Age" header if it was present.
Further, the "expires" directives now removes the "Age" header if it
was present in the response, as the "expires" directive assumes zero
age when it adds "Expires" and "Cache-Control" headers.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 18 Jul 2024 19:39:45 +0300 |
parents | f3df785649ae |
children |
rev | line source |
---|---|
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
432
diff
changeset
|
1 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
432
diff
changeset
|
2 /* |
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
441
diff
changeset
|
3 * Copyright (C) Igor Sysoev |
4412 | 4 * Copyright (C) Nginx, Inc. |
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
432
diff
changeset
|
5 */ |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
432
diff
changeset
|
6 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
432
diff
changeset
|
7 |
0
4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #ifndef _NGX_HTTP_H_INCLUDED_ |
4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 #define _NGX_HTTP_H_INCLUDED_ |
4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
12 #include <ngx_config.h> |
100
7ebc8b7fb816
nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
99
diff
changeset
|
13 #include <ngx_core.h> |
190
02a715e85df1
nginx-0.0.1-2003-11-19-00:34:08 import
Igor Sysoev <igor@sysoev.ru>
parents:
178
diff
changeset
|
14 |
509 | 15 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
16 typedef struct ngx_http_request_s ngx_http_request_t; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
17 typedef struct ngx_http_upstream_s ngx_http_upstream_t; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
18 typedef struct ngx_http_cache_s ngx_http_cache_t; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
19 typedef struct ngx_http_file_cache_s ngx_http_file_cache_t; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
20 typedef struct ngx_http_log_ctx_s ngx_http_log_ctx_t; |
4925
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
21 typedef struct ngx_http_chunked_s ngx_http_chunked_t; |
6246
257b51c37c5a
The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents:
6180
diff
changeset
|
22 typedef struct ngx_http_v2_stream_s ngx_http_v2_stream_t; |
8706
3057bae4dba7
HTTP/3: introduced ngx_http_v3_parse_t structure.
Roman Arutyunyan <arut@nginx.com>
parents:
8689
diff
changeset
|
23 typedef struct ngx_http_v3_parse_s ngx_http_v3_parse_t; |
8770
67f0eb150047
HTTP/3: renamed ngx_http_v3_connection_t to ngx_http_v3_session_t.
Roman Arutyunyan <arut@nginx.com>
parents:
8769
diff
changeset
|
24 typedef struct ngx_http_v3_session_s ngx_http_v3_session_t; |
5121
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
25 |
509 | 26 typedef ngx_int_t (*ngx_http_header_handler_pt)(ngx_http_request_t *r, |
27 ngx_table_elt_t *h, ngx_uint_t offset); | |
665 | 28 typedef u_char *(*ngx_http_log_handler_pt)(ngx_http_request_t *r, |
29 ngx_http_request_t *sr, u_char *buf, size_t len); | |
501 | 30 |
197
0b81c7a0b133
nginx-0.0.1-2003-11-27-10:45:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
191
diff
changeset
|
31 |
509 | 32 #include <ngx_http_variables.h> |
5089
903f2a5d86a5
SNI: reuse selected configuration for all requests in a connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5008
diff
changeset
|
33 #include <ngx_http_config.h> |
509 | 34 #include <ngx_http_request.h> |
5008
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
4925
diff
changeset
|
35 #include <ngx_http_script.h> |
479 | 36 #include <ngx_http_upstream.h> |
884 | 37 #include <ngx_http_upstream_round_robin.h> |
96
a23d010f356d
nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
91
diff
changeset
|
38 #include <ngx_http_core_module.h> |
0
4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
39 |
6246
257b51c37c5a
The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents:
6180
diff
changeset
|
40 #if (NGX_HTTP_V2) |
257b51c37c5a
The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents:
6180
diff
changeset
|
41 #include <ngx_http_v2.h> |
5121
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
42 #endif |
8215 | 43 #if (NGX_HTTP_V3) |
44 #include <ngx_http_v3.h> | |
45 #endif | |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
46 #if (NGX_HTTP_CACHE) |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
47 #include <ngx_http_cache.h> |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
48 #endif |
597 | 49 #if (NGX_HTTP_SSI) |
50 #include <ngx_http_ssi_filter_module.h> | |
51 #endif | |
395
f8f0f1834266
nginx-0.0.7-2004-07-16-21:11:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
392
diff
changeset
|
52 #if (NGX_HTTP_SSL) |
f8f0f1834266
nginx-0.0.7-2004-07-16-21:11:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
392
diff
changeset
|
53 #include <ngx_http_ssl_module.h> |
383
c05876036128
nginx-0.0.7-2004-07-08-19:17:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
356
diff
changeset
|
54 #endif |
c05876036128
nginx-0.0.7-2004-07-08-19:17:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
356
diff
changeset
|
55 |
26
53cb81681040
nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
24
diff
changeset
|
56 |
479 | 57 struct ngx_http_log_ctx_s { |
1810 | 58 ngx_connection_t *connection; |
461 | 59 ngx_http_request_t *request; |
665 | 60 ngx_http_request_t *current_request; |
479 | 61 }; |
6
669801705ab1
nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents:
4
diff
changeset
|
62 |
0
4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
63 |
4925
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
64 struct ngx_http_chunked_s { |
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
65 ngx_uint_t state; |
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
66 off_t size; |
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
67 off_t length; |
9240
f3df785649ae
Request body: limited chunk extensions and trailer headers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
9021
diff
changeset
|
68 off_t skipped; |
4925
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
69 }; |
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
70 |
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
71 |
3626 | 72 typedef struct { |
4125
e5df04b05e75
Protocol version parsing in ngx_http_parse_status_line().
Maxim Dounin <mdounin@mdounin.ru>
parents:
3772
diff
changeset
|
73 ngx_uint_t http_version; |
3626 | 74 ngx_uint_t code; |
75 ngx_uint_t count; | |
76 u_char *start; | |
77 u_char *end; | |
78 } ngx_http_status_t; | |
79 | |
80 | |
675 | 81 #define ngx_http_get_module_ctx(r, module) (r)->ctx[module.ctx_index] |
82 #define ngx_http_set_ctx(r, c, module) r->ctx[module.ctx_index] = c; | |
9
6f58641241bb
nginx-0.0.1-2002-09-07-14:14:25 import
Igor Sysoev <igor@sysoev.ru>
parents:
8
diff
changeset
|
83 |
6f58641241bb
nginx-0.0.1-2002-09-07-14:14:25 import
Igor Sysoev <igor@sysoev.ru>
parents:
8
diff
changeset
|
84 |
2027 | 85 ngx_int_t ngx_http_add_location(ngx_conf_t *cf, ngx_queue_t **locations, |
86 ngx_http_core_loc_conf_t *clcf); | |
3217 | 87 ngx_int_t ngx_http_add_listen(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf, |
3220
cdcd9e29c589
*) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents:
3217
diff
changeset
|
88 ngx_http_listen_opt_t *lsopt); |
2027 | 89 |
90 | |
86
3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
83
diff
changeset
|
91 void ngx_http_init_connection(ngx_connection_t *c); |
5121
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
92 void ngx_http_close_connection(ngx_connection_t *c); |
200
abeaebe0a33c
nginx-0.0.1-2003-11-28-20:41:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
197
diff
changeset
|
93 |
5200
9d83ec073c51
Fixed build with --with-mail_ssl_module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5121
diff
changeset
|
94 #if (NGX_HTTP_SSL && defined SSL_CTRL_SET_TLSEXT_HOSTNAME) |
1219 | 95 int ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg); |
96 #endif | |
7462
be2af41d3620
SSL: variables support in ssl_certificate and ssl_certificate_key.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6718
diff
changeset
|
97 #if (NGX_HTTP_SSL && defined SSL_R_CERT_CB_ERROR) |
be2af41d3620
SSL: variables support in ssl_certificate and ssl_certificate_key.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6718
diff
changeset
|
98 int ngx_http_ssl_certificate(ngx_ssl_conn_t *ssl_conn, void *arg); |
be2af41d3620
SSL: variables support in ssl_certificate and ssl_certificate_key.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6718
diff
changeset
|
99 #endif |
be2af41d3620
SSL: variables support in ssl_certificate and ssl_certificate_key.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6718
diff
changeset
|
100 |
1219 | 101 |
432
11362a3e3911
nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents:
416
diff
changeset
|
102 ngx_int_t ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b); |
5121
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
103 ngx_int_t ngx_http_parse_uri(ngx_http_request_t *r); |
1585 | 104 ngx_int_t ngx_http_parse_complex_uri(ngx_http_request_t *r, |
105 ngx_uint_t merge_slashes); | |
3626 | 106 ngx_int_t ngx_http_parse_status_line(ngx_http_request_t *r, ngx_buf_t *b, |
107 ngx_http_status_t *status); | |
573 | 108 ngx_int_t ngx_http_parse_unsafe_uri(ngx_http_request_t *r, ngx_str_t *uri, |
109 ngx_str_t *args, ngx_uint_t *flags); | |
2256 | 110 ngx_int_t ngx_http_parse_header_line(ngx_http_request_t *r, ngx_buf_t *b, |
111 ngx_uint_t allow_underscores); | |
8024
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7977
diff
changeset
|
112 ngx_table_elt_t *ngx_http_parse_multi_header_lines(ngx_http_request_t *r, |
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7977
diff
changeset
|
113 ngx_table_elt_t *headers, ngx_str_t *name, ngx_str_t *value); |
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7977
diff
changeset
|
114 ngx_table_elt_t *ngx_http_parse_set_cookie_lines(ngx_http_request_t *r, |
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7977
diff
changeset
|
115 ngx_table_elt_t *headers, ngx_str_t *name, ngx_str_t *value); |
2415 | 116 ngx_int_t ngx_http_arg(ngx_http_request_t *r, u_char *name, size_t len, |
117 ngx_str_t *value); | |
2578 | 118 void ngx_http_split_args(ngx_http_request_t *r, ngx_str_t *uri, |
119 ngx_str_t *args); | |
4925
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
120 ngx_int_t ngx_http_parse_chunked(ngx_http_request_t *r, ngx_buf_t *b, |
32030fa8cb14
Request body: chunked parsing moved to ngx_http_parse.c from proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
121 ngx_http_chunked_t *ctx); |
2415 | 122 |
200
abeaebe0a33c
nginx-0.0.1-2003-11-28-20:41:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
197
diff
changeset
|
123 |
5121
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
124 ngx_http_request_t *ngx_http_create_request(ngx_connection_t *c); |
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
125 ngx_int_t ngx_http_process_request_uri(ngx_http_request_t *r); |
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
126 ngx_int_t ngx_http_process_request_header(ngx_http_request_t *r); |
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
127 void ngx_http_process_request(ngx_http_request_t *r); |
535 | 128 void ngx_http_update_location_config(ngx_http_request_t *r); |
88
674d333f4296
nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
87
diff
changeset
|
129 void ngx_http_handler(ngx_http_request_t *r); |
2377
87b8c44906b5
*) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents:
2294
diff
changeset
|
130 void ngx_http_run_posted_requests(ngx_connection_t *c); |
3064 | 131 ngx_int_t ngx_http_post_request(ngx_http_request_t *r, |
132 ngx_http_posted_request_t *pr); | |
8679
e1eb7f4ca9f1
HTTP/3: refactored request parser.
Roman Arutyunyan <arut@nginx.com>
parents:
8497
diff
changeset
|
133 ngx_int_t ngx_http_set_virtual_server(ngx_http_request_t *r, |
e1eb7f4ca9f1
HTTP/3: refactored request parser.
Roman Arutyunyan <arut@nginx.com>
parents:
8497
diff
changeset
|
134 ngx_str_t *host); |
e1eb7f4ca9f1
HTTP/3: refactored request parser.
Roman Arutyunyan <arut@nginx.com>
parents:
8497
diff
changeset
|
135 ngx_int_t ngx_http_validate_host(ngx_str_t *host, ngx_pool_t *pool, |
e1eb7f4ca9f1
HTTP/3: refactored request parser.
Roman Arutyunyan <arut@nginx.com>
parents:
8497
diff
changeset
|
136 ngx_uint_t alloc); |
e1eb7f4ca9f1
HTTP/3: refactored request parser.
Roman Arutyunyan <arut@nginx.com>
parents:
8497
diff
changeset
|
137 void ngx_http_close_request(ngx_http_request_t *r, ngx_int_t rc); |
509 | 138 void ngx_http_finalize_request(ngx_http_request_t *r, ngx_int_t rc); |
5121
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5108
diff
changeset
|
139 void ngx_http_free_request(ngx_http_request_t *r, ngx_int_t rc); |
87
5f6d848dcbef
nginx-0.0.1-2003-05-13-20:02:32 import
Igor Sysoev <igor@sysoev.ru>
parents:
86
diff
changeset
|
140 |
191
71ce40b3c37b
nginx-0.0.1-2003-11-19-19:26:41 import
Igor Sysoev <igor@sysoev.ru>
parents:
190
diff
changeset
|
141 void ngx_http_empty_handler(ngx_event_t *wev); |
509 | 142 void ngx_http_request_empty_handler(ngx_http_request_t *r); |
87
5f6d848dcbef
nginx-0.0.1-2003-05-13-20:02:32 import
Igor Sysoev <igor@sysoev.ru>
parents:
86
diff
changeset
|
143 |
2377
87b8c44906b5
*) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents:
2294
diff
changeset
|
144 |
581 | 145 #define NGX_HTTP_LAST 1 |
146 #define NGX_HTTP_FLUSH 2 | |
147 | |
148 ngx_int_t ngx_http_send_special(ngx_http_request_t *r, ngx_uint_t flags); | |
149 | |
59
e8cdc2989cee
nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
58
diff
changeset
|
150 |
479 | 151 ngx_int_t ngx_http_read_client_request_body(ngx_http_request_t *r, |
499 | 152 ngx_http_client_body_handler_pt post_handler); |
6050
a08fad30aeac
Request body: unbuffered reading.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6049
diff
changeset
|
153 ngx_int_t ngx_http_read_unbuffered_request_body(ngx_http_request_t *r); |
83
a7e45c45a95c
nginx-0.0.1-2003-04-28-19:06:39 import
Igor Sysoev <igor@sysoev.ru>
parents:
82
diff
changeset
|
154 |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
155 ngx_int_t ngx_http_send_header(ngx_http_request_t *r); |
499 | 156 ngx_int_t ngx_http_special_response_handler(ngx_http_request_t *r, |
157 ngx_int_t error); | |
2787
3daf68f2efe3
ngx_http_filter_finalize_request() and ngx_http_clean_header()
Igor Sysoev <igor@sysoev.ru>
parents:
2592
diff
changeset
|
158 ngx_int_t ngx_http_filter_finalize_request(ngx_http_request_t *r, |
2821
26e06e009ced
allow to pass image filter errors via the same location where the filter is set
Igor Sysoev <igor@sysoev.ru>
parents:
2787
diff
changeset
|
159 ngx_module_t *m, ngx_int_t error); |
2787
3daf68f2efe3
ngx_http_filter_finalize_request() and ngx_http_clean_header()
Igor Sysoev <igor@sysoev.ru>
parents:
2592
diff
changeset
|
160 void ngx_http_clean_header(ngx_http_request_t *r); |
59
e8cdc2989cee
nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
58
diff
changeset
|
161 |
e8cdc2989cee
nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
58
diff
changeset
|
162 |
1370
cc114c85be0f
rename ngx_http_discard_body() to ngx_http_discard_request_body()
Igor Sysoev <igor@sysoev.ru>
parents:
1368
diff
changeset
|
163 ngx_int_t ngx_http_discard_request_body(ngx_http_request_t *r); |
3214
798a7f1d3b2f
restore discard body handler after ngx_http_set_writer() set it to
Igor Sysoev <igor@sysoev.ru>
parents:
3064
diff
changeset
|
164 void ngx_http_discarded_request_body_handler(ngx_http_request_t *r); |
1368
202cae9a0c2b
rename ngx_http_block_read() and ngx_http_test_read() to ..._reading()
Igor Sysoev <igor@sysoev.ru>
parents:
1219
diff
changeset
|
165 void ngx_http_block_reading(ngx_http_request_t *r); |
2294 | 166 void ngx_http_test_reading(ngx_http_request_t *r); |
26
53cb81681040
nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
24
diff
changeset
|
167 |
58
6b13b1cadabe
nginx-0.0.1-2003-01-30-21:21:39 import
Igor Sysoev <igor@sysoev.ru>
parents:
56
diff
changeset
|
168 |
2138 | 169 char *ngx_http_types_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); |
3372
6b8e5c882e47
support "*" in gzip_types, ssi_types, etc
Igor Sysoev <igor@sysoev.ru>
parents:
3220
diff
changeset
|
170 char *ngx_http_merge_types(ngx_conf_t *cf, ngx_array_t **keys, |
6b8e5c882e47
support "*" in gzip_types, ssi_types, etc
Igor Sysoev <igor@sysoev.ru>
parents:
3220
diff
changeset
|
171 ngx_hash_t *types_hash, ngx_array_t **prev_keys, |
6b8e5c882e47
support "*" in gzip_types, ssi_types, etc
Igor Sysoev <igor@sysoev.ru>
parents:
3220
diff
changeset
|
172 ngx_hash_t *prev_types_hash, ngx_str_t *default_types); |
2175
a69886fc2864
*) fix segfaults in types hash
Igor Sysoev <igor@sysoev.ru>
parents:
2166
diff
changeset
|
173 ngx_int_t ngx_http_set_default_types(ngx_conf_t *cf, ngx_array_t **types, |
2138 | 174 ngx_str_t *default_type); |
175 | |
3772 | 176 #if (NGX_HTTP_DEGRADATION) |
177 ngx_uint_t ngx_http_degraded(ngx_http_request_t *); | |
178 #endif | |
179 | |
2138 | 180 |
8830
d4a6c03cfcb6
HTTP/3: got rid of HTTP/2 module dependency.
Vladimir Homutov <vl@nginx.com>
parents:
8770
diff
changeset
|
181 #if (NGX_HTTP_V2 || NGX_HTTP_V3) |
7977
336084ff943b
Moved Huffman coding out of HTTP/2.
Ruslan Ermilov <ru@nginx.com>
parents:
7462
diff
changeset
|
182 ngx_int_t ngx_http_huff_decode(u_char *state, u_char *src, size_t len, |
336084ff943b
Moved Huffman coding out of HTTP/2.
Ruslan Ermilov <ru@nginx.com>
parents:
7462
diff
changeset
|
183 u_char **dst, ngx_uint_t last, ngx_log_t *log); |
336084ff943b
Moved Huffman coding out of HTTP/2.
Ruslan Ermilov <ru@nginx.com>
parents:
7462
diff
changeset
|
184 size_t ngx_http_huff_encode(u_char *src, size_t len, u_char *dst, |
336084ff943b
Moved Huffman coding out of HTTP/2.
Ruslan Ermilov <ru@nginx.com>
parents:
7462
diff
changeset
|
185 ngx_uint_t lower); |
336084ff943b
Moved Huffman coding out of HTTP/2.
Ruslan Ermilov <ru@nginx.com>
parents:
7462
diff
changeset
|
186 #endif |
336084ff943b
Moved Huffman coding out of HTTP/2.
Ruslan Ermilov <ru@nginx.com>
parents:
7462
diff
changeset
|
187 |
336084ff943b
Moved Huffman coding out of HTTP/2.
Ruslan Ermilov <ru@nginx.com>
parents:
7462
diff
changeset
|
188 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
89
diff
changeset
|
189 extern ngx_module_t ngx_http_module; |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
43
diff
changeset
|
190 |
2166
723df5089c05
use hash in gzip_types, ssi_types, and sub_filter_types
Igor Sysoev <igor@sysoev.ru>
parents:
2138
diff
changeset
|
191 extern ngx_str_t ngx_http_html_default_types[]; |
723df5089c05
use hash in gzip_types, ssi_types, and sub_filter_types
Igor Sysoev <igor@sysoev.ru>
parents:
2138
diff
changeset
|
192 |
10
4f3879d9b6f6
nginx-0.0.1-2002-09-11-19:18:33 import
Igor Sysoev <igor@sysoev.ru>
parents:
9
diff
changeset
|
193 |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
194 extern ngx_http_output_header_filter_pt ngx_http_top_header_filter; |
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
195 extern ngx_http_output_body_filter_pt ngx_http_top_body_filter; |
6049
42d9beeb22db
Request body: filters support.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6032
diff
changeset
|
196 extern ngx_http_request_body_filter_pt ngx_http_top_request_body_filter; |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
197 |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
43
diff
changeset
|
198 |
0
4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
199 #endif /* _NGX_HTTP_H_INCLUDED_ */ |