annotate src/core/ngx_cycle.h @ 6719:cebf5fed00bf

Modules compatibility: removed unneeded IPV6_V6ONLY checks. The IPV6_V6ONLY macro is now checked only while parsing appropriate flag and when using the macro. The ipv6only field in listen structures is always initialized to 1, even if not supported on a given platform. This is expected to prevent a module compiled without IPV6_V6ONLY from accidentally creating dual sockets if loaded into main binary with proper IPV6_V6ONLY support.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 03 Oct 2016 15:58:25 +0300
parents 2cd019520210
children 1bf4f21b1b72
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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: 414
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: 414
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
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 3880
diff changeset
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: 414
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: 414
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: 414
diff changeset
7
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_CYCLE_H_INCLUDED_
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_CYCLE_H_INCLUDED_
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 #include <ngx_config.h>
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 #include <ngx_core.h>
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
507
cd3117ad9aab nginx-0.1.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
16 #ifndef NGX_CYCLE_POOL_SIZE
5124
5482671df278 Use NGX_DEFAULT_POOL_SIZE macro where appropriate.
Ruslan Ermilov <ru@nginx.com>
parents: 4870
diff changeset
17 #define NGX_CYCLE_POOL_SIZE NGX_DEFAULT_POOL_SIZE
507
cd3117ad9aab nginx-0.1.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
18 #endif
cd3117ad9aab nginx-0.1.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
19
cd3117ad9aab nginx-0.1.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
20
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
21 #define NGX_DEBUG_POINTS_STOP 1
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
22 #define NGX_DEBUG_POINTS_ABORT 2
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
23
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
24
972
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
25 typedef struct ngx_shm_zone_s ngx_shm_zone_t;
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
26
993
1b9a4d92173f pass the inherited shm_zone data
Igor Sysoev <igor@sysoev.ru>
parents: 972
diff changeset
27 typedef ngx_int_t (*ngx_shm_zone_init_pt) (ngx_shm_zone_t *zone, void *data);
972
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
28
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
29 struct ngx_shm_zone_s {
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
30 void *data;
860
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 611
diff changeset
31 ngx_shm_t shm;
972
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
32 ngx_shm_zone_init_pt init;
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
33 void *tag;
6103
79ddb0bdb273 Upstream: the "zone" directive.
Ruslan Ermilov <ru@nginx.com>
parents: 6016
diff changeset
34 ngx_uint_t noreuse; /* unsigned noreuse:1; */
972
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
35 };
860
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 611
diff changeset
36
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 611
diff changeset
37
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38 struct ngx_cycle_s {
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
39 void ****conf_ctx;
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
40 ngx_pool_t *pool;
317
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
41
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
42 ngx_log_t *log;
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2758
diff changeset
43 ngx_log_t new_log;
317
1308b98496a2 nginx-0.0.3-2004-04-15-19:34:36 import
Igor Sysoev <igor@sysoev.ru>
parents: 311
diff changeset
44
5240
d8af1005e886 Core: fixed handling of "stderr" in error_log.
Vladimir Homutov <vl@nginx.com>
parents: 5124
diff changeset
45 ngx_uint_t log_use_stderr; /* unsigned log_use_stderr:1; */
d8af1005e886 Core: fixed handling of "stderr" in error_log.
Vladimir Homutov <vl@nginx.com>
parents: 5124
diff changeset
46
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
47 ngx_connection_t **files;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
48 ngx_connection_t *free_connections;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
49 ngx_uint_t free_connection_n;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
50
6379
cf5e822cf470 Dynamic modules: changed ngx_modules to cycle->modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6335
diff changeset
51 ngx_module_t **modules;
6383
85dea406e18f Dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6379
diff changeset
52 ngx_uint_t modules_n;
85dea406e18f Dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6379
diff changeset
53 ngx_uint_t modules_used; /* unsigned modules_used:1; */
6379
cf5e822cf470 Dynamic modules: changed ngx_modules to cycle->modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6335
diff changeset
54
3880
e3cb8e27e413 reuse keepalive connections if there are no free worker connections
Igor Sysoev <igor@sysoev.ru>
parents: 3762
diff changeset
55 ngx_queue_t reusable_connections_queue;
e3cb8e27e413 reuse keepalive connections if there are no free worker connections
Igor Sysoev <igor@sysoev.ru>
parents: 3762
diff changeset
56
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
57 ngx_array_t listening;
4870
8a9b7b4e9f2d Correct plural form for "path" in the whole source base.
Andrey Belov <defan@nginx.com>
parents: 4549
diff changeset
58 ngx_array_t paths;
6187
1b7e246e6b38 Core: store and dump processed configuration.
Vladimir Homutov <vl@nginx.com>
parents: 6127
diff changeset
59 ngx_array_t config_dump;
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
60 ngx_list_t open_files;
860
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 611
diff changeset
61 ngx_list_t shared_memory;
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
63 ngx_uint_t connection_n;
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
64 ngx_uint_t files_n;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
65
561
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
66 ngx_connection_t *connections;
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
67 ngx_event_t *read_events;
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
68 ngx_event_t *write_events;
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
69
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
70 ngx_cycle_t *old_cycle;
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
71
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
72 ngx_str_t conf_file;
2073
01b71aa095cc -g switch
Igor Sysoev <igor@sysoev.ru>
parents: 2011
diff changeset
73 ngx_str_t conf_param;
2758
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2738
diff changeset
74 ngx_str_t conf_prefix;
77264e0157ad -p and --prefix=
Igor Sysoev <igor@sysoev.ru>
parents: 2738
diff changeset
75 ngx_str_t prefix;
860
201d017ea470 slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents: 611
diff changeset
76 ngx_str_t lock_file;
2011
b56d4b1ebac7 $hostname variable
Igor Sysoev <igor@sysoev.ru>
parents: 1069
diff changeset
77 ngx_str_t hostname;
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
78 };
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
79
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
80
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 255
diff changeset
81 typedef struct {
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
82 ngx_flag_t daemon;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
83 ngx_flag_t master;
300
502b03d9d2a3 nginx-0.0.3-2004-03-31-00:31:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
84
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
85 ngx_msec_t timer_resolution;
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 561
diff changeset
86
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
87 ngx_int_t worker_processes;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
88 ngx_int_t debug_points;
300
502b03d9d2a3 nginx-0.0.3-2004-03-31-00:31:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
89
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
90 ngx_int_t rlimit_nofile;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
91 off_t rlimit_core;
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
92
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
93 int priority;
300
502b03d9d2a3 nginx-0.0.3-2004-03-31-00:31:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
94
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
95 ngx_uint_t cpu_affinity_auto;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
96 ngx_uint_t cpu_affinity_n;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
97 ngx_cpuset_t *cpu_affinity;
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
98
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
99 char *username;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
100 ngx_uid_t user;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
101 ngx_gid_t group;
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
102
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
103 ngx_str_t working_directory;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
104 ngx_str_t lock_file;
521
6f00349b98e5 nginx-0.1.35-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
105
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
106 ngx_str_t pid;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
107 ngx_str_t oldpid;
376
d0451e402e27 nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 336
diff changeset
108
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
109 ngx_array_t env;
Ruslan Ermilov <ru@nginx.com>
parents: 6402
diff changeset
110 char **environment;
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 255
diff changeset
111 } ngx_core_conf_t;
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 255
diff changeset
112
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 255
diff changeset
113
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 605
diff changeset
114 #define ngx_is_init_cycle(cycle) (cycle->conf_ctx == NULL)
605
5dac8c7fb71b nginx-0.3.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
115
5dac8c7fb71b nginx-0.3.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
116
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
117 ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle);
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 605
diff changeset
118 ngx_int_t ngx_create_pidfile(ngx_str_t *name, ngx_log_t *log);
311
11ff50a35d6d nginx-0.0.3-2004-04-12-20:38:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 300
diff changeset
119 void ngx_delete_pidfile(ngx_cycle_t *cycle);
2738
ae81441e23f4 implement "-s signal" option for Unix
Igor Sysoev <igor@sysoev.ru>
parents: 2716
diff changeset
120 ngx_int_t ngx_signal_process(ngx_cycle_t *cycle, char *sig);
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 255
diff changeset
121 void ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user);
1069
Igor Sysoev <igor@sysoev.ru>
parents: 993
diff changeset
122 char **ngx_set_environment(ngx_cycle_t *cycle, ngx_uint_t *last);
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 255
diff changeset
123 ngx_pid_t ngx_exec_new_binary(ngx_cycle_t *cycle, char *const *argv);
6402
7296b38f6416 Core: added support for more than 64 CPUs in worker_cpu_affinity.
Vladimir Homutov <vl@nginx.com>
parents: 6383
diff changeset
124 ngx_cpuset_t *ngx_get_cpu_affinity(ngx_uint_t n);
972
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
125 ngx_shm_zone_t *ngx_shared_memory_add(ngx_conf_t *cf, ngx_str_t *name,
6e7a20529f53 ngx_shared_memory_add()
Igor Sysoev <igor@sysoev.ru>
parents: 949
diff changeset
126 size_t size, void *tag);
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
127
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
128
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
129 extern volatile ngx_cycle_t *ngx_cycle;
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
130 extern ngx_array_t ngx_old_cycles;
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 255
diff changeset
131 extern ngx_module_t ngx_core_module;
318
56496082668b nginx-0.0.3-2004-04-16-09:14:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 317
diff changeset
132 extern ngx_uint_t ngx_test_config;
6187
1b7e246e6b38 Core: store and dump processed configuration.
Vladimir Homutov <vl@nginx.com>
parents: 6127
diff changeset
133 extern ngx_uint_t ngx_dump_config;
3750
ffbdaa3c70d6 the -q switch
Igor Sysoev <igor@sysoev.ru>
parents: 2785
diff changeset
134 extern ngx_uint_t ngx_quiet_mode;
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
135
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
136
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
137 #endif /* _NGX_CYCLE_H_INCLUDED_ */