Mercurial > hg > nginx
diff src/core/nginx.c @ 106:9f9de4deda7e
nginx-0.0.1-2003-06-26-19:35:36 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 26 Jun 2003 15:35:36 +0000 |
parents | 00bee6e7b485 |
children | b5be4b0448d3 |
line wrap: on
line diff
--- a/src/core/nginx.c +++ b/src/core/nginx.c @@ -1,4 +1,3 @@ - #include <ngx_config.h> #include <ngx_core.h> @@ -10,9 +9,7 @@ static int ngx_open_listening_sockets(ngx_log_t *log); -ngx_log_t ngx_log; -ngx_pool_t *ngx_pool; -void ****ngx_conf_ctx; +void ****ngx_conf_ctx; ngx_os_io_t ngx_io; @@ -28,53 +25,103 @@ ngx_array_t ngx_listening_sockets; int main(int argc, char *const *argv) { - int i; + int i; ngx_str_t conf_file; ngx_log_t *log; + ngx_pool_t *pool, *old_pool; ngx_conf_t conf; ngx_max_sockets = -1; -#if 0 - ngx_log.fd = STDERR_FILENO; - ngx_log.log_level = NGX_LOG_INFO; - - /* STUB */ ngx_log.log_level = NGX_LOG_DEBUG; -#endif - log = ngx_log_init_errlog(); if (ngx_os_init(log) == NGX_ERROR) { return 1; } - ngx_pool = ngx_create_pool(16 * 1024, log); - /* */ - ngx_max_module = 0; for (i = 0; ngx_modules[i]; i++) { ngx_modules[i]->index = ngx_max_module++; } +#if 0 + + ngx_test_null(cycle->pool, ngx_create_pool(16 * 1024, log), 1); + + if (ngx_init_conf(cycle) == NGX_ERROR) { + ngx_destroy_pool(cycle->pool); + return 1; + } + + /* daemon */ + /* life cycle */ { + + /* forks */ + + /* threads */ + + for ( ;; ) { + worker; + + new_cycle = ngx_calloc(sizeof(ngx_cycle_t), cycle->log); + + if (new_cycle == NULL) { + continue; + } + + new_cycle->pool = ngx_create_pool(16 * 1024, cycle->log); + + if (new_cycle->pool == NULL) { + ngx_free(new_cycle); + continue; + } + + if (ngx_init_conf(new_cycle) == NGX_ERROR) { + ngx_destroy_pool(new_cycle->pool); + ngx_free(new_cycle); + continue; + } + + /* update bound listening */ + + ngx_destroy_pool(cycle->pool); + ngx_free(cycle); + + cycle = new_cycle; + break; + } + } + + return 0; + +#endif + + /* life cycle */ + + { + old_pool = pool; + + pool = ngx_create_pool(16 * 1024, log); + ngx_init_array(ngx_listening_sockets, - ngx_pool, 10, sizeof(ngx_listening_t), + pool, 10, sizeof(ngx_listening_t), 1); ngx_memzero(&conf, sizeof(ngx_conf_t)); ngx_test_null(conf.args, - ngx_create_array(ngx_pool, 10, sizeof(ngx_str_t)), + ngx_create_array(pool, 10, sizeof(ngx_str_t)), 1); ngx_test_null(ngx_conf_ctx, - ngx_pcalloc(ngx_pool, ngx_max_module * sizeof(void *)), + ngx_pcalloc(pool, ngx_max_module * sizeof(void *)), 1); conf.ctx = ngx_conf_ctx; - conf.pool = ngx_pool; + conf.pool = pool; conf.log = log; conf.module_type = NGX_CORE_MODULE; conf.cmd_type = NGX_MAIN_CONF; @@ -97,7 +144,7 @@ int main(int argc, char *const *argv) for (i = 0; ngx_modules[i]; i++) { if (ngx_modules[i]->init_module) { - if (ngx_modules[i]->init_module(ngx_pool) == NGX_ERROR) { + if (ngx_modules[i]->init_module(pool) == NGX_ERROR) { return 1; } } @@ -111,7 +158,7 @@ int main(int argc, char *const *argv) /* TODO: fork */ - ngx_pre_thread(&ngx_listening_sockets, ngx_pool, log); + ngx_pre_thread(&ngx_listening_sockets, pool, log); /* TODO: threads */ @@ -122,6 +169,43 @@ int main(int argc, char *const *argv) return 0; } +#if 0 + +static int ngx_init_conf(ngx_cycle_t *cycle) +{ + ngx_conf_t conf; + + ngx_init_array(cycle->listening, cycle->pool, 10, sizeof(ngx_listening_t), + NGX_ERROR); + + ngx_memzero(&conf, sizeof(ngx_conf_t)); + + ngx_test_null(conf.args, + ngx_create_array(cycle->pool, 10, sizeof(ngx_str_t)), + NGX_ERROR); + + ngx_test_null(ngx_conf_ctx, + ngx_pcalloc(cycle->pool, ngx_max_module * sizeof(void *)), + NGX_ERROR); + + conf.ctx = ngx_conf_ctx; + conf.pool = cycle->pool; + conf.log = cycle->log; + conf.module_type = NGX_CORE_MODULE; + conf.cmd_type = NGX_MAIN_CONF; + + conf_file.len = sizeof(NGINX_CONF) - 1; + conf_file.data = NGINX_CONF; + + if (ngx_conf_parse(&conf, &conf_file) != NGX_CONF_OK) { + return NGX_ERROR; + } + + return NGX_OK; +} + + +#endif static int ngx_open_listening_sockets(ngx_log_t *log) {