aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_cycle.c
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2016-02-04 20:25:29 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2016-02-04 20:25:29 +0300
commit97f59dda09f139fbf18d6a20097d3337a2489b3c (patch)
tree14bdb60c3fbb499c15dcd21267d847af4c8f4b5b /src/core/ngx_cycle.c
parent0805ba14e7a25bc61627d6ece2a79243fe0b640a (diff)
downloadnginx-97f59dda09f139fbf18d6a20097d3337a2489b3c.tar.gz
nginx-97f59dda09f139fbf18d6a20097d3337a2489b3c.zip
Dynamic modules.
The auto/module script is extended to understand ngx_module_link=DYNAMIC. When set, it links the module as a shared object rather than statically into nginx binary. The module can later be loaded using the "load_module" directive. New auto/module parameter ngx_module_order allows to define module loading order in complex cases. By default the order is set based on ngx_module_type. 3rd party modules can be compiled dynamically using the --add-dynamic-module configure option, which will preset ngx_module_link to "DYNAMIC" before calling the module config script. Win32 support is rudimentary, and only works when using MinGW gcc (which is able to handle exports/imports automatically). In collaboration with Ruslan Ermilov.
Diffstat (limited to 'src/core/ngx_cycle.c')
-rw-r--r--src/core/ngx_cycle.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index 946f8c008..f1032668a 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -212,7 +212,10 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
ngx_strlow(cycle->hostname.data, (u_char *) hostname, cycle->hostname.len);
- cycle->modules = ngx_modules;
+ if (ngx_cycle_modules(cycle) != NGX_OK) {
+ ngx_destroy_pool(pool);
+ return NULL;
+ }
for (i = 0; cycle->modules[i]; i++) {