[nginx] Dynamic modules: changed ngx_modules to cycle->modules.
Maxim Dounin
mdounin at mdounin.ru
Thu Feb 4 18:40:33 UTC 2016
details: http://hg.nginx.org/nginx/rev/cf5e822cf470
branches:
changeset: 6379:cf5e822cf470
user: Maxim Dounin <mdounin at mdounin.ru>
date: Thu Feb 04 18:30:21 2016 +0300
description:
Dynamic modules: changed ngx_modules to cycle->modules.
diffstat:
src/core/ngx_conf_file.c | 14 ++++----
src/core/ngx_cycle.c | 20 ++++++++-----
src/core/ngx_cycle.h | 2 +
src/core/ngx_module.c | 12 ++++----
src/event/ngx_event.c | 44 +++++++++++++++--------------
src/http/modules/ngx_http_rewrite_module.c | 8 ++--
src/http/ngx_http.c | 28 +++++++++---------
src/http/ngx_http_core_module.c | 28 +++++++++---------
src/http/ngx_http_upstream.c | 10 +++---
src/mail/ngx_mail.c | 16 +++++-----
src/mail/ngx_mail_core_module.c | 20 ++++++------
src/os/unix/ngx_process_cycle.c | 30 ++++++++++----------
src/os/win32/ngx_process_cycle.c | 18 ++++++------
src/stream/ngx_stream.c | 22 +++++++-------
src/stream/ngx_stream_core_module.c | 8 ++--
src/stream/ngx_stream_upstream.c | 8 ++--
16 files changed, 148 insertions(+), 140 deletions(-)
diffs (truncated from 796 to 300 lines):
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -329,9 +329,9 @@ ngx_conf_handler(ngx_conf_t *cf, ngx_int
found = 0;
- for (i = 0; ngx_modules[i]; i++) {
+ for (i = 0; cf->cycle->modules[i]; i++) {
- cmd = ngx_modules[i]->commands;
+ cmd = cf->cycle->modules[i]->commands;
if (cmd == NULL) {
continue;
}
@@ -348,8 +348,8 @@ ngx_conf_handler(ngx_conf_t *cf, ngx_int
found = 1;
- if (ngx_modules[i]->type != NGX_CONF_MODULE
- && ngx_modules[i]->type != cf->module_type)
+ if (cf->cycle->modules[i]->type != NGX_CONF_MODULE
+ && cf->cycle->modules[i]->type != cf->module_type)
{
continue;
}
@@ -411,16 +411,16 @@ ngx_conf_handler(ngx_conf_t *cf, ngx_int
conf = NULL;
if (cmd->type & NGX_DIRECT_CONF) {
- conf = ((void **) cf->ctx)[ngx_modules[i]->index];
+ conf = ((void **) cf->ctx)[cf->cycle->modules[i]->index];
} else if (cmd->type & NGX_MAIN_CONF) {
- conf = &(((void **) cf->ctx)[ngx_modules[i]->index]);
+ conf = &(((void **) cf->ctx)[cf->cycle->modules[i]->index]);
} else if (cf->ctx) {
confp = *(void **) ((char *) cf->ctx + cmd->conf);
if (confp) {
- conf = confp[ngx_modules[i]->ctx_index];
+ conf = confp[cf->cycle->modules[i]->ctx_index];
}
}
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -212,12 +212,15 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
ngx_strlow(cycle->hostname.data, (u_char *) hostname, cycle->hostname.len);
- for (i = 0; ngx_modules[i]; i++) {
- if (ngx_modules[i]->type != NGX_CORE_MODULE) {
+ cycle->modules = ngx_modules;
+
+
+ for (i = 0; cycle->modules[i]; i++) {
+ if (cycle->modules[i]->type != NGX_CORE_MODULE) {
continue;
}
- module = ngx_modules[i]->ctx;
+ module = cycle->modules[i]->ctx;
if (module->create_conf) {
rv = module->create_conf(cycle);
@@ -225,7 +228,7 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
ngx_destroy_pool(pool);
return NULL;
}
- cycle->conf_ctx[ngx_modules[i]->index] = rv;
+ cycle->conf_ctx[cycle->modules[i]->index] = rv;
}
}
@@ -276,15 +279,16 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
cycle->conf_file.data);
}
- for (i = 0; ngx_modules[i]; i++) {
- if (ngx_modules[i]->type != NGX_CORE_MODULE) {
+ for (i = 0; cycle->modules[i]; i++) {
+ if (cycle->modules[i]->type != NGX_CORE_MODULE) {
continue;
}
- module = ngx_modules[i]->ctx;
+ module = cycle->modules[i]->ctx;
if (module->init_conf) {
- if (module->init_conf(cycle, cycle->conf_ctx[ngx_modules[i]->index])
+ if (module->init_conf(cycle,
+ cycle->conf_ctx[cycle->modules[i]->index])
== NGX_CONF_ERROR)
{
environ = senv;
diff --git a/src/core/ngx_cycle.h b/src/core/ngx_cycle.h
--- a/src/core/ngx_cycle.h
+++ b/src/core/ngx_cycle.h
@@ -48,6 +48,8 @@ struct ngx_cycle_s {
ngx_connection_t *free_connections;
ngx_uint_t free_connection_n;
+ ngx_module_t **modules;
+
ngx_queue_t reusable_connections_queue;
ngx_array_t listening;
diff --git a/src/core/ngx_module.c b/src/core/ngx_module.c
--- a/src/core/ngx_module.c
+++ b/src/core/ngx_module.c
@@ -32,9 +32,9 @@ ngx_init_modules(ngx_cycle_t *cycle)
{
ngx_uint_t i;
- for (i = 0; ngx_modules[i]; i++) {
- if (ngx_modules[i]->init_module) {
- if (ngx_modules[i]->init_module(cycle) != NGX_OK) {
+ for (i = 0; cycle->modules[i]; i++) {
+ if (cycle->modules[i]->init_module) {
+ if (cycle->modules[i]->init_module(cycle) != NGX_OK) {
return NGX_ERROR;
}
}
@@ -53,12 +53,12 @@ ngx_count_modules(ngx_cycle_t *cycle, ng
/* count appropriate modules, set up their indices */
- for (i = 0; ngx_modules[i]; i++) {
- if (ngx_modules[i]->type != type) {
+ for (i = 0; cycle->modules[i]; i++) {
+ if (cycle->modules[i]->type != type) {
continue;
}
- ngx_modules[i]->ctx_index = max++;
+ cycle->modules[i]->ctx_index = max++;
}
return max;
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -606,16 +606,16 @@ ngx_event_process_init(ngx_cycle_t *cycl
return NGX_ERROR;
}
- for (m = 0; ngx_modules[m]; m++) {
- if (ngx_modules[m]->type != NGX_EVENT_MODULE) {
+ for (m = 0; cycle->modules[m]; m++) {
+ if (cycle->modules[m]->type != NGX_EVENT_MODULE) {
continue;
}
- if (ngx_modules[m]->ctx_index != ecf->use) {
+ if (cycle->modules[m]->ctx_index != ecf->use) {
continue;
}
- module = ngx_modules[m]->ctx;
+ module = cycle->modules[m]->ctx;
if (module->actions.init(cycle, ngx_timer_resolution) != NGX_OK) {
/* fatal */
@@ -905,16 +905,17 @@ ngx_events_block(ngx_conf_t *cf, ngx_com
*(void **) conf = ctx;
- for (i = 0; ngx_modules[i]; i++) {
- if (ngx_modules[i]->type != NGX_EVENT_MODULE) {
+ for (i = 0; cf->cycle->modules[i]; i++) {
+ if (cf->cycle->modules[i]->type != NGX_EVENT_MODULE) {
continue;
}
- m = ngx_modules[i]->ctx;
+ m = cf->cycle->modules[i]->ctx;
if (m->create_conf) {
- (*ctx)[ngx_modules[i]->ctx_index] = m->create_conf(cf->cycle);
- if ((*ctx)[ngx_modules[i]->ctx_index] == NULL) {
+ (*ctx)[cf->cycle->modules[i]->ctx_index] =
+ m->create_conf(cf->cycle);
+ if ((*ctx)[cf->cycle->modules[i]->ctx_index] == NULL) {
return NGX_CONF_ERROR;
}
}
@@ -933,15 +934,16 @@ ngx_events_block(ngx_conf_t *cf, ngx_com
return rv;
}
- for (i = 0; ngx_modules[i]; i++) {
- if (ngx_modules[i]->type != NGX_EVENT_MODULE) {
+ for (i = 0; cf->cycle->modules[i]; i++) {
+ if (cf->cycle->modules[i]->type != NGX_EVENT_MODULE) {
continue;
}
- m = ngx_modules[i]->ctx;
+ m = cf->cycle->modules[i]->ctx;
if (m->init_conf) {
- rv = m->init_conf(cf->cycle, (*ctx)[ngx_modules[i]->ctx_index]);
+ rv = m->init_conf(cf->cycle,
+ (*ctx)[cf->cycle->modules[i]->ctx_index]);
if (rv != NGX_CONF_OK) {
return rv;
}
@@ -1002,15 +1004,15 @@ ngx_event_use(ngx_conf_t *cf, ngx_comman
}
- for (m = 0; ngx_modules[m]; m++) {
- if (ngx_modules[m]->type != NGX_EVENT_MODULE) {
+ for (m = 0; cf->cycle->modules[m]; m++) {
+ if (cf->cycle->modules[m]->type != NGX_EVENT_MODULE) {
continue;
}
- module = ngx_modules[m]->ctx;
+ module = cf->cycle->modules[m]->ctx;
if (module->name->len == value[1].len) {
if (ngx_strcmp(module->name->data, value[1].data) == 0) {
- ecf->use = ngx_modules[m]->ctx_index;
+ ecf->use = cf->cycle->modules[m]->ctx_index;
ecf->name = module->name->data;
if (ngx_process == NGX_PROCESS_SINGLE
@@ -1225,20 +1227,20 @@ ngx_event_core_init_conf(ngx_cycle_t *cy
#endif
if (module == NULL) {
- for (i = 0; ngx_modules[i]; i++) {
+ for (i = 0; cycle->modules[i]; i++) {
- if (ngx_modules[i]->type != NGX_EVENT_MODULE) {
+ if (cycle->modules[i]->type != NGX_EVENT_MODULE) {
continue;
}
- event_module = ngx_modules[i]->ctx;
+ event_module = cycle->modules[i]->ctx;
if (ngx_strcmp(event_module->name->data, event_core_name.data) == 0)
{
continue;
}
- module = ngx_modules[i];
+ module = cycle->modules[i];
break;
}
}
diff --git a/src/http/modules/ngx_http_rewrite_module.c b/src/http/modules/ngx_http_rewrite_module.c
--- a/src/http/modules/ngx_http_rewrite_module.c
+++ b/src/http/modules/ngx_http_rewrite_module.c
@@ -560,12 +560,12 @@ ngx_http_rewrite_if(ngx_conf_t *cf, ngx_
return NGX_CONF_ERROR;
}
- for (i = 0; ngx_modules[i]; i++) {
- if (ngx_modules[i]->type != NGX_HTTP_MODULE) {
+ for (i = 0; cf->cycle->modules[i]; i++) {
+ if (cf->cycle->modules[i]->type != NGX_HTTP_MODULE) {
continue;
}
- module = ngx_modules[i]->ctx;
+ module = cf->cycle->modules[i]->ctx;
if (module->create_loc_conf) {
@@ -574,7 +574,7 @@ ngx_http_rewrite_if(ngx_conf_t *cf, ngx_
return NGX_CONF_ERROR;
}
- ctx->loc_conf[ngx_modules[i]->ctx_index] = mconf;
+ ctx->loc_conf[cf->cycle->modules[i]->ctx_index] = mconf;
}
}
diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c
--- a/src/http/ngx_http.c
+++ b/src/http/ngx_http.c
@@ -183,13 +183,13 @@ ngx_http_block(ngx_conf_t *cf, ngx_comma
* of the all http modules
*/
- for (m = 0; ngx_modules[m]; m++) {
- if (ngx_modules[m]->type != NGX_HTTP_MODULE) {
+ for (m = 0; cf->cycle->modules[m]; m++) {
+ if (cf->cycle->modules[m]->type != NGX_HTTP_MODULE) {
continue;
}
- module = ngx_modules[m]->ctx;
- mi = ngx_modules[m]->ctx_index;
+ module = cf->cycle->modules[m]->ctx;
More information about the nginx-devel
mailing list