Mercurial > hg > nginx-quic
annotate src/core/ngx_module.h @ 6755:e2f13011343e stable-1.10
HTTP/2: fixed the "http request count is zero" alert.
When the stream is terminated the HEADERS frame can still wait in the output
queue. This frame can't be removed and must be sent to the client anyway,
since HTTP/2 uses stateful compression for headers. So in order to postpone
closing and freeing memory of such stream the special close stream handler
is set to the write event. After the HEADERS frame is sent the write event
is called and the stream will be finally closed.
Some events like receiving a RST_STREAM can trigger the read handler of such
stream in closing state and cause unexpected processing that can result in
another attempt to finalize the request. To prevent it the read handler is
now set to ngx_http_empty_handler.
Thanks to Amazon.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Thu, 16 Jun 2016 20:55:11 +0300 |
parents | 3600bbfb43e3 |
children | 9eefb38f0005 |
rev | line source |
---|---|
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 /* |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 * Copyright (C) Igor Sysoev |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 * Copyright (C) Maxim Dounin |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 * Copyright (C) Nginx, Inc. |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 */ |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 #ifndef _NGX_MODULE_H_INCLUDED_ |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 #define _NGX_MODULE_H_INCLUDED_ |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
12 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 #include <ngx_config.h> |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 #include <ngx_core.h> |
6383 | 15 #include <nginx.h> |
16 | |
17 | |
18 #define NGX_MODULE_UNSET_INDEX (ngx_uint_t) -1 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 |
6383 | 21 #define NGX_MODULE_SIGNATURE_0 \ |
22 ngx_value(NGX_PTR_SIZE) "," \ | |
23 ngx_value(NGX_SIG_ATOMIC_T_SIZE) "," \ | |
24 ngx_value(NGX_TIME_T_SIZE) "," | |
25 | |
26 #if (NGX_HAVE_KQUEUE) | |
27 #define NGX_MODULE_SIGNATURE_1 "1" | |
28 #else | |
29 #define NGX_MODULE_SIGNATURE_1 "0" | |
30 #endif | |
31 | |
32 #if (NGX_HAVE_IOCP) | |
33 #define NGX_MODULE_SIGNATURE_2 "1" | |
34 #else | |
35 #define NGX_MODULE_SIGNATURE_2 "0" | |
36 #endif | |
37 | |
38 #if (NGX_HAVE_FILE_AIO) | |
39 #define NGX_MODULE_SIGNATURE_3 "1" | |
40 #else | |
41 #define NGX_MODULE_SIGNATURE_3 "0" | |
42 #endif | |
43 | |
44 #if (NGX_HAVE_AIO_SENDFILE) | |
45 #define NGX_MODULE_SIGNATURE_4 "1" | |
46 #else | |
47 #define NGX_MODULE_SIGNATURE_4 "0" | |
48 #endif | |
49 | |
50 #if (NGX_HAVE_EVENTFD) | |
51 #define NGX_MODULE_SIGNATURE_5 "1" | |
52 #else | |
53 #define NGX_MODULE_SIGNATURE_5 "0" | |
54 #endif | |
55 | |
56 #if (NGX_HAVE_EPOLL) | |
57 #define NGX_MODULE_SIGNATURE_6 "1" | |
58 #else | |
59 #define NGX_MODULE_SIGNATURE_6 "0" | |
60 #endif | |
61 | |
62 #if (NGX_HAVE_KEEPALIVE_TUNABLE) | |
63 #define NGX_MODULE_SIGNATURE_7 "1" | |
64 #else | |
65 #define NGX_MODULE_SIGNATURE_7 "0" | |
66 #endif | |
67 | |
68 #if (NGX_HAVE_INET6) | |
69 #define NGX_MODULE_SIGNATURE_8 "1" | |
70 #else | |
71 #define NGX_MODULE_SIGNATURE_8 "0" | |
72 #endif | |
73 | |
74 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY) | |
75 #define NGX_MODULE_SIGNATURE_9 "1" | |
76 #else | |
77 #define NGX_MODULE_SIGNATURE_9 "0" | |
78 #endif | |
79 | |
80 #if (NGX_HAVE_REUSEPORT) | |
81 #define NGX_MODULE_SIGNATURE_10 "1" | |
82 #else | |
83 #define NGX_MODULE_SIGNATURE_10 "0" | |
84 #endif | |
85 | |
86 #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER) | |
87 #define NGX_MODULE_SIGNATURE_11 "1" | |
88 #else | |
89 #define NGX_MODULE_SIGNATURE_11 "0" | |
90 #endif | |
91 | |
92 #if (NGX_HAVE_DEFERRED_ACCEPT && defined TCP_DEFER_ACCEPT) | |
93 #define NGX_MODULE_SIGNATURE_12 "1" | |
94 #else | |
95 #define NGX_MODULE_SIGNATURE_12 "0" | |
96 #endif | |
97 | |
98 #if (NGX_HAVE_SETFIB) | |
99 #define NGX_MODULE_SIGNATURE_13 "1" | |
100 #else | |
101 #define NGX_MODULE_SIGNATURE_13 "0" | |
102 #endif | |
103 | |
104 #if (NGX_HAVE_TCP_FASTOPEN) | |
105 #define NGX_MODULE_SIGNATURE_14 "1" | |
106 #else | |
107 #define NGX_MODULE_SIGNATURE_14 "0" | |
108 #endif | |
109 | |
110 #if (NGX_HAVE_UNIX_DOMAIN) | |
111 #define NGX_MODULE_SIGNATURE_15 "1" | |
112 #else | |
113 #define NGX_MODULE_SIGNATURE_15 "0" | |
114 #endif | |
115 | |
116 #if (NGX_HAVE_VARIADIC_MACROS) | |
117 #define NGX_MODULE_SIGNATURE_16 "1" | |
118 #else | |
119 #define NGX_MODULE_SIGNATURE_16 "0" | |
120 #endif | |
121 | |
122 #if (NGX_HAVE_MD5) | |
123 #define NGX_MODULE_SIGNATURE_17 "1" | |
124 #else | |
125 #define NGX_MODULE_SIGNATURE_17 "0" | |
126 #endif | |
127 | |
128 #if (NGX_HAVE_SHA1) | |
129 #define NGX_MODULE_SIGNATURE_18 "1" | |
130 #else | |
131 #define NGX_MODULE_SIGNATURE_18 "0" | |
132 #endif | |
133 | |
134 #if (NGX_HAVE_OPENAT) | |
135 #define NGX_MODULE_SIGNATURE_19 "1" | |
136 #else | |
137 #define NGX_MODULE_SIGNATURE_19 "0" | |
138 #endif | |
139 | |
140 #if (NGX_HAVE_ATOMIC_OPS) | |
141 #define NGX_MODULE_SIGNATURE_20 "1" | |
142 #else | |
143 #define NGX_MODULE_SIGNATURE_20 "0" | |
144 #endif | |
145 | |
146 #if (NGX_HAVE_POSIX_SEM) | |
147 #define NGX_MODULE_SIGNATURE_21 "1" | |
148 #else | |
149 #define NGX_MODULE_SIGNATURE_21 "0" | |
150 #endif | |
151 | |
152 #if (NGX_THREADS) | |
153 #define NGX_MODULE_SIGNATURE_22 "1" | |
154 #else | |
155 #define NGX_MODULE_SIGNATURE_22 "0" | |
156 #endif | |
157 | |
158 #if (NGX_PCRE) | |
159 #define NGX_MODULE_SIGNATURE_23 "1" | |
160 #else | |
161 #define NGX_MODULE_SIGNATURE_23 "0" | |
162 #endif | |
163 | |
164 #if (NGX_HTTP_SSL) | |
165 #define NGX_MODULE_SIGNATURE_24 "1" | |
166 #else | |
167 #define NGX_MODULE_SIGNATURE_24 "0" | |
168 #endif | |
169 | |
170 #if (NGX_HTTP_V2) | |
171 #define NGX_MODULE_SIGNATURE_25 "1" | |
172 #else | |
173 #define NGX_MODULE_SIGNATURE_25 "0" | |
174 #endif | |
175 | |
176 #if (NGX_HTTP_GZIP) | |
177 #define NGX_MODULE_SIGNATURE_26 "1" | |
178 #else | |
179 #define NGX_MODULE_SIGNATURE_26 "0" | |
180 #endif | |
181 | |
182 #if (NGX_HTTP_DEGRADATION) | |
183 #define NGX_MODULE_SIGNATURE_27 "1" | |
184 #else | |
185 #define NGX_MODULE_SIGNATURE_27 "0" | |
186 #endif | |
187 | |
188 #if (NGX_HTTP_X_FORWARDED_FOR) | |
189 #define NGX_MODULE_SIGNATURE_28 "1" | |
190 #else | |
191 #define NGX_MODULE_SIGNATURE_28 "0" | |
192 #endif | |
193 | |
194 #if (NGX_HTTP_REALIP) | |
195 #define NGX_MODULE_SIGNATURE_29 "1" | |
196 #else | |
197 #define NGX_MODULE_SIGNATURE_29 "0" | |
198 #endif | |
199 | |
200 #if (NGX_HTTP_HEADERS) | |
201 #define NGX_MODULE_SIGNATURE_30 "1" | |
202 #else | |
203 #define NGX_MODULE_SIGNATURE_30 "0" | |
204 #endif | |
205 | |
206 #if (NGX_HTTP_DAV) | |
207 #define NGX_MODULE_SIGNATURE_31 "1" | |
208 #else | |
209 #define NGX_MODULE_SIGNATURE_31 "0" | |
210 #endif | |
211 | |
212 #if (NGX_HTTP_CACHE) | |
213 #define NGX_MODULE_SIGNATURE_32 "1" | |
214 #else | |
215 #define NGX_MODULE_SIGNATURE_32 "0" | |
216 #endif | |
217 | |
218 #if (NGX_HTTP_UPSTREAM_ZONE) | |
219 #define NGX_MODULE_SIGNATURE_33 "1" | |
220 #else | |
221 #define NGX_MODULE_SIGNATURE_33 "0" | |
222 #endif | |
223 | |
224 #define NGX_MODULE_SIGNATURE \ | |
225 NGX_MODULE_SIGNATURE_0 NGX_MODULE_SIGNATURE_1 NGX_MODULE_SIGNATURE_2 \ | |
226 NGX_MODULE_SIGNATURE_3 NGX_MODULE_SIGNATURE_4 NGX_MODULE_SIGNATURE_5 \ | |
227 NGX_MODULE_SIGNATURE_6 NGX_MODULE_SIGNATURE_7 NGX_MODULE_SIGNATURE_8 \ | |
228 NGX_MODULE_SIGNATURE_9 NGX_MODULE_SIGNATURE_10 NGX_MODULE_SIGNATURE_11 \ | |
229 NGX_MODULE_SIGNATURE_12 NGX_MODULE_SIGNATURE_13 NGX_MODULE_SIGNATURE_14 \ | |
230 NGX_MODULE_SIGNATURE_15 NGX_MODULE_SIGNATURE_16 NGX_MODULE_SIGNATURE_17 \ | |
231 NGX_MODULE_SIGNATURE_18 NGX_MODULE_SIGNATURE_19 NGX_MODULE_SIGNATURE_20 \ | |
232 NGX_MODULE_SIGNATURE_21 NGX_MODULE_SIGNATURE_22 NGX_MODULE_SIGNATURE_23 \ | |
233 NGX_MODULE_SIGNATURE_24 NGX_MODULE_SIGNATURE_25 NGX_MODULE_SIGNATURE_26 \ | |
234 NGX_MODULE_SIGNATURE_27 NGX_MODULE_SIGNATURE_28 NGX_MODULE_SIGNATURE_29 \ | |
235 NGX_MODULE_SIGNATURE_30 NGX_MODULE_SIGNATURE_31 NGX_MODULE_SIGNATURE_32 \ | |
236 NGX_MODULE_SIGNATURE_33 | |
237 | |
238 | |
239 #define NGX_MODULE_V1 \ | |
240 NGX_MODULE_UNSET_INDEX, NGX_MODULE_UNSET_INDEX, \ | |
241 NULL, 0, 0, nginx_version, NGX_MODULE_SIGNATURE | |
242 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
243 #define NGX_MODULE_V1_PADDING 0, 0, 0, 0, 0, 0, 0, 0 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
244 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
245 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
246 struct ngx_module_s { |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
247 ngx_uint_t ctx_index; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
248 ngx_uint_t index; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
249 |
6383 | 250 char *name; |
251 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
252 ngx_uint_t spare0; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
253 ngx_uint_t spare1; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
254 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
255 ngx_uint_t version; |
6390
ff1e625ae55b
Core: ngx_module_t compatibility with C++.
Piotr Sikora <piotrsikora@google.com>
parents:
6383
diff
changeset
|
256 const char *signature; |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
257 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
258 void *ctx; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
259 ngx_command_t *commands; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
260 ngx_uint_t type; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
261 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
262 ngx_int_t (*init_master)(ngx_log_t *log); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
263 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
264 ngx_int_t (*init_module)(ngx_cycle_t *cycle); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
265 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
266 ngx_int_t (*init_process)(ngx_cycle_t *cycle); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
267 ngx_int_t (*init_thread)(ngx_cycle_t *cycle); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
268 void (*exit_thread)(ngx_cycle_t *cycle); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
269 void (*exit_process)(ngx_cycle_t *cycle); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
270 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
271 void (*exit_master)(ngx_cycle_t *cycle); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
272 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
273 uintptr_t spare_hook0; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
274 uintptr_t spare_hook1; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
275 uintptr_t spare_hook2; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
276 uintptr_t spare_hook3; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
277 uintptr_t spare_hook4; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
278 uintptr_t spare_hook5; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
279 uintptr_t spare_hook6; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
280 uintptr_t spare_hook7; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
281 }; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
282 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
283 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
284 typedef struct { |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
285 ngx_str_t name; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
286 void *(*create_conf)(ngx_cycle_t *cycle); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
287 char *(*init_conf)(ngx_cycle_t *cycle, void *conf); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
288 } ngx_core_module_t; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
289 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
290 |
6429
3600bbfb43e3
Fixed compilation with -Wmissing-prototypes.
Sergey Kandaurov <pluknet@nginx.com>
parents:
6390
diff
changeset
|
291 ngx_int_t ngx_preinit_modules(void); |
6383 | 292 ngx_int_t ngx_cycle_modules(ngx_cycle_t *cycle); |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
293 ngx_int_t ngx_init_modules(ngx_cycle_t *cycle); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
294 ngx_int_t ngx_count_modules(ngx_cycle_t *cycle, ngx_uint_t type); |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
295 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
296 |
6383 | 297 ngx_int_t ngx_add_module(ngx_conf_t *cf, ngx_str_t *file, |
298 ngx_module_t *module, char **order); | |
299 | |
300 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
301 extern ngx_module_t *ngx_modules[]; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
302 extern ngx_uint_t ngx_max_module; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
303 |
6383 | 304 extern char *ngx_module_names[]; |
305 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
306 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
307 #endif /* _NGX_MODULE_H_INCLUDED_ */ |