From 798833457018ee8a6274ec78e816f747361c0d47 Mon Sep 17 00:00:00 2001 From: Maxim Dounin Date: Thu, 4 Feb 2016 18:30:21 +0300 Subject: Dynamic modules: moved module-related stuff to separate files. --- src/core/ngx_module.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/core/ngx_module.c (limited to 'src/core/ngx_module.c') diff --git a/src/core/ngx_module.c b/src/core/ngx_module.c new file mode 100644 index 000000000..dc4e91f34 --- /dev/null +++ b/src/core/ngx_module.c @@ -0,0 +1,65 @@ + +/* + * Copyright (C) Igor Sysoev + * Copyright (C) Maxim Dounin + * Copyright (C) Nginx, Inc. + */ + + +#include +#include + + +ngx_uint_t ngx_max_module; + + +ngx_int_t +ngx_preinit_modules() +{ + ngx_uint_t i; + + ngx_max_module = 0; + for (i = 0; ngx_modules[i]; i++) { + ngx_modules[i]->index = ngx_max_module++; + } + + return NGX_OK; +} + + +ngx_int_t +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) { + return NGX_ERROR; + } + } + } + + return NGX_OK; +} + + +ngx_int_t +ngx_count_modules(ngx_cycle_t *cycle, ngx_uint_t type) +{ + ngx_uint_t i, max; + + max = 0; + + /* count appropriate modules, set up their indices */ + + for (i = 0; ngx_modules[i]; i++) { + if (ngx_modules[i]->type != type) { + continue; + } + + ngx_modules[i]->ctx_index = max++; + } + + return max; +} -- cgit