Mercurial > hg > nginx
annotate src/core/ngx_module.h @ 9299:2706b60dc225
Core: error logging rate limiting.
With this change, error logging to files can be rate-limited with
the "rate=" parameter. The parameter specifies allowed log messages
rate to a particular file (per worker), in messages per second (m/s).
By default, "rate=1000m/s" is used.
Rate limiting is implemented using the "leaky bucket" method, similarly
to the limit_req module.
Maximum burst size is set to the number of log messages per second
for each severity level, so "error" messages are logged even if the
rate limit is hit by "info" messages (but not vice versa). When the
limit is reached for a particular level, the "too many log messages,
limiting" message is logged at this level.
If debug logging is enabled, either for the particular log file or for
the particular connection, rate limiting is not used.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 25 Jun 2024 22:58:56 +0300 |
parents | 32b5aaebcca5 |
children |
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 | |
6734
0c572ed91b36
Modules compatibility: compatibility with NGX_HAVE_FILE_AIO.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6733
diff
changeset
|
38 #if (NGX_HAVE_FILE_AIO || NGX_COMPAT) |
6383 | 39 #define NGX_MODULE_SIGNATURE_3 "1" |
40 #else | |
41 #define NGX_MODULE_SIGNATURE_3 "0" | |
42 #endif | |
43 | |
7985
ec2e6893caaa
Simplified sendfile(SF_NODISKIO) usage.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6735
diff
changeset
|
44 #if (NGX_HAVE_SENDFILE_NODISKIO || NGX_COMPAT) |
6383 | 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 #define NGX_MODULE_SIGNATURE_9 "1" | |
75 #define NGX_MODULE_SIGNATURE_10 "1" | |
76 | |
77 #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER) | |
78 #define NGX_MODULE_SIGNATURE_11 "1" | |
79 #else | |
80 #define NGX_MODULE_SIGNATURE_11 "0" | |
81 #endif | |
82 | |
83 #define NGX_MODULE_SIGNATURE_12 "1" | |
84 | |
85 #if (NGX_HAVE_SETFIB) | |
86 #define NGX_MODULE_SIGNATURE_13 "1" | |
87 #else | |
88 #define NGX_MODULE_SIGNATURE_13 "0" | |
89 #endif | |
90 | |
91 #if (NGX_HAVE_TCP_FASTOPEN) | |
92 #define NGX_MODULE_SIGNATURE_14 "1" | |
93 #else | |
94 #define NGX_MODULE_SIGNATURE_14 "0" | |
95 #endif | |
96 | |
97 #if (NGX_HAVE_UNIX_DOMAIN) | |
98 #define NGX_MODULE_SIGNATURE_15 "1" | |
99 #else | |
100 #define NGX_MODULE_SIGNATURE_15 "0" | |
101 #endif | |
102 | |
103 #if (NGX_HAVE_VARIADIC_MACROS) | |
104 #define NGX_MODULE_SIGNATURE_16 "1" | |
105 #else | |
106 #define NGX_MODULE_SIGNATURE_16 "0" | |
107 #endif | |
108 | |
109 #define NGX_MODULE_SIGNATURE_17 "0" | |
9163
32b5aaebcca5
Modules compatibility: added QUIC to signature (ticket #2539).
Roman Arutyunyan <arut@nginx.com>
parents:
7985
diff
changeset
|
110 |
32b5aaebcca5
Modules compatibility: added QUIC to signature (ticket #2539).
Roman Arutyunyan <arut@nginx.com>
parents:
7985
diff
changeset
|
111 #if (NGX_QUIC || NGX_COMPAT) |
32b5aaebcca5
Modules compatibility: added QUIC to signature (ticket #2539).
Roman Arutyunyan <arut@nginx.com>
parents:
7985
diff
changeset
|
112 #define NGX_MODULE_SIGNATURE_18 "1" |
32b5aaebcca5
Modules compatibility: added QUIC to signature (ticket #2539).
Roman Arutyunyan <arut@nginx.com>
parents:
7985
diff
changeset
|
113 #else |
6383 | 114 #define NGX_MODULE_SIGNATURE_18 "0" |
9163
32b5aaebcca5
Modules compatibility: added QUIC to signature (ticket #2539).
Roman Arutyunyan <arut@nginx.com>
parents:
7985
diff
changeset
|
115 #endif |
6383 | 116 |
117 #if (NGX_HAVE_OPENAT) | |
118 #define NGX_MODULE_SIGNATURE_19 "1" | |
119 #else | |
120 #define NGX_MODULE_SIGNATURE_19 "0" | |
121 #endif | |
122 | |
123 #if (NGX_HAVE_ATOMIC_OPS) | |
124 #define NGX_MODULE_SIGNATURE_20 "1" | |
125 #else | |
126 #define NGX_MODULE_SIGNATURE_20 "0" | |
127 #endif | |
128 | |
129 #if (NGX_HAVE_POSIX_SEM) | |
130 #define NGX_MODULE_SIGNATURE_21 "1" | |
131 #else | |
132 #define NGX_MODULE_SIGNATURE_21 "0" | |
133 #endif | |
134 | |
6733
adc2414856b1
Modules compatibility: compatibility with NGX_THREADS.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6721
diff
changeset
|
135 #if (NGX_THREADS || NGX_COMPAT) |
6383 | 136 #define NGX_MODULE_SIGNATURE_22 "1" |
137 #else | |
138 #define NGX_MODULE_SIGNATURE_22 "0" | |
139 #endif | |
140 | |
141 #if (NGX_PCRE) | |
142 #define NGX_MODULE_SIGNATURE_23 "1" | |
143 #else | |
144 #define NGX_MODULE_SIGNATURE_23 "0" | |
145 #endif | |
146 | |
6735
e38e9c50a40e
Modules compatibility: compatibility with NGX_HTTP_SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6734
diff
changeset
|
147 #if (NGX_HTTP_SSL || NGX_COMPAT) |
6383 | 148 #define NGX_MODULE_SIGNATURE_24 "1" |
149 #else | |
150 #define NGX_MODULE_SIGNATURE_24 "0" | |
151 #endif | |
152 | |
153 #define NGX_MODULE_SIGNATURE_25 "1" | |
154 | |
155 #if (NGX_HTTP_GZIP) | |
156 #define NGX_MODULE_SIGNATURE_26 "1" | |
157 #else | |
158 #define NGX_MODULE_SIGNATURE_26 "0" | |
159 #endif | |
160 | |
161 #define NGX_MODULE_SIGNATURE_27 "1" | |
162 | |
163 #if (NGX_HTTP_X_FORWARDED_FOR) | |
164 #define NGX_MODULE_SIGNATURE_28 "1" | |
165 #else | |
166 #define NGX_MODULE_SIGNATURE_28 "0" | |
167 #endif | |
168 | |
169 #if (NGX_HTTP_REALIP) | |
170 #define NGX_MODULE_SIGNATURE_29 "1" | |
171 #else | |
172 #define NGX_MODULE_SIGNATURE_29 "0" | |
173 #endif | |
174 | |
175 #if (NGX_HTTP_HEADERS) | |
176 #define NGX_MODULE_SIGNATURE_30 "1" | |
177 #else | |
178 #define NGX_MODULE_SIGNATURE_30 "0" | |
179 #endif | |
180 | |
181 #if (NGX_HTTP_DAV) | |
182 #define NGX_MODULE_SIGNATURE_31 "1" | |
183 #else | |
184 #define NGX_MODULE_SIGNATURE_31 "0" | |
185 #endif | |
186 | |
187 #if (NGX_HTTP_CACHE) | |
188 #define NGX_MODULE_SIGNATURE_32 "1" | |
189 #else | |
190 #define NGX_MODULE_SIGNATURE_32 "0" | |
191 #endif | |
192 | |
193 #if (NGX_HTTP_UPSTREAM_ZONE) | |
194 #define NGX_MODULE_SIGNATURE_33 "1" | |
195 #else | |
196 #define NGX_MODULE_SIGNATURE_33 "0" | |
197 #endif | |
198 | |
6715
d200a0fd00b7
Introduced the NGX_COMPAT macro.
Ruslan Ermilov <ru@nginx.com>
parents:
6603
diff
changeset
|
199 #if (NGX_COMPAT) |
d200a0fd00b7
Introduced the NGX_COMPAT macro.
Ruslan Ermilov <ru@nginx.com>
parents:
6603
diff
changeset
|
200 #define NGX_MODULE_SIGNATURE_34 "1" |
d200a0fd00b7
Introduced the NGX_COMPAT macro.
Ruslan Ermilov <ru@nginx.com>
parents:
6603
diff
changeset
|
201 #else |
d200a0fd00b7
Introduced the NGX_COMPAT macro.
Ruslan Ermilov <ru@nginx.com>
parents:
6603
diff
changeset
|
202 #define NGX_MODULE_SIGNATURE_34 "0" |
d200a0fd00b7
Introduced the NGX_COMPAT macro.
Ruslan Ermilov <ru@nginx.com>
parents:
6603
diff
changeset
|
203 #endif |
d200a0fd00b7
Introduced the NGX_COMPAT macro.
Ruslan Ermilov <ru@nginx.com>
parents:
6603
diff
changeset
|
204 |
6383 | 205 #define NGX_MODULE_SIGNATURE \ |
206 NGX_MODULE_SIGNATURE_0 NGX_MODULE_SIGNATURE_1 NGX_MODULE_SIGNATURE_2 \ | |
207 NGX_MODULE_SIGNATURE_3 NGX_MODULE_SIGNATURE_4 NGX_MODULE_SIGNATURE_5 \ | |
208 NGX_MODULE_SIGNATURE_6 NGX_MODULE_SIGNATURE_7 NGX_MODULE_SIGNATURE_8 \ | |
209 NGX_MODULE_SIGNATURE_9 NGX_MODULE_SIGNATURE_10 NGX_MODULE_SIGNATURE_11 \ | |
210 NGX_MODULE_SIGNATURE_12 NGX_MODULE_SIGNATURE_13 NGX_MODULE_SIGNATURE_14 \ | |
211 NGX_MODULE_SIGNATURE_15 NGX_MODULE_SIGNATURE_16 NGX_MODULE_SIGNATURE_17 \ | |
212 NGX_MODULE_SIGNATURE_18 NGX_MODULE_SIGNATURE_19 NGX_MODULE_SIGNATURE_20 \ | |
213 NGX_MODULE_SIGNATURE_21 NGX_MODULE_SIGNATURE_22 NGX_MODULE_SIGNATURE_23 \ | |
214 NGX_MODULE_SIGNATURE_24 NGX_MODULE_SIGNATURE_25 NGX_MODULE_SIGNATURE_26 \ | |
215 NGX_MODULE_SIGNATURE_27 NGX_MODULE_SIGNATURE_28 NGX_MODULE_SIGNATURE_29 \ | |
216 NGX_MODULE_SIGNATURE_30 NGX_MODULE_SIGNATURE_31 NGX_MODULE_SIGNATURE_32 \ | |
6715
d200a0fd00b7
Introduced the NGX_COMPAT macro.
Ruslan Ermilov <ru@nginx.com>
parents:
6603
diff
changeset
|
217 NGX_MODULE_SIGNATURE_33 NGX_MODULE_SIGNATURE_34 |
6383 | 218 |
219 | |
220 #define NGX_MODULE_V1 \ | |
221 NGX_MODULE_UNSET_INDEX, NGX_MODULE_UNSET_INDEX, \ | |
222 NULL, 0, 0, nginx_version, NGX_MODULE_SIGNATURE | |
223 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
224 #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
|
225 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
226 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
227 struct ngx_module_s { |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
228 ngx_uint_t ctx_index; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
229 ngx_uint_t index; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
230 |
6383 | 231 char *name; |
232 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
233 ngx_uint_t spare0; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
234 ngx_uint_t spare1; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
235 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
236 ngx_uint_t version; |
6390
ff1e625ae55b
Core: ngx_module_t compatibility with C++.
Piotr Sikora <piotrsikora@google.com>
parents:
6383
diff
changeset
|
237 const char *signature; |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
238 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
239 void *ctx; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
240 ngx_command_t *commands; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
241 ngx_uint_t type; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
242 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
243 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
|
244 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
245 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
|
246 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
247 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
|
248 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
|
249 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
|
250 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
|
251 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
252 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
|
253 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
254 uintptr_t spare_hook0; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
255 uintptr_t spare_hook1; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
256 uintptr_t spare_hook2; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
257 uintptr_t spare_hook3; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
258 uintptr_t spare_hook4; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
259 uintptr_t spare_hook5; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
260 uintptr_t spare_hook6; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
261 uintptr_t spare_hook7; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
262 }; |
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 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
265 typedef struct { |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
266 ngx_str_t name; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
267 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
|
268 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
|
269 } ngx_core_module_t; |
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 |
6429
3600bbfb43e3
Fixed compilation with -Wmissing-prototypes.
Sergey Kandaurov <pluknet@nginx.com>
parents:
6390
diff
changeset
|
272 ngx_int_t ngx_preinit_modules(void); |
6383 | 273 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
|
274 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
|
275 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
|
276 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
277 |
6383 | 278 ngx_int_t ngx_add_module(ngx_conf_t *cf, ngx_str_t *file, |
279 ngx_module_t *module, char **order); | |
280 | |
281 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
282 extern ngx_module_t *ngx_modules[]; |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
283 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
|
284 |
6383 | 285 extern char *ngx_module_names[]; |
286 | |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
287 |
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
288 #endif /* _NGX_MODULE_H_INCLUDED_ */ |