Mercurial > hg > nginx
diff src/core/ngx_conf_file.c @ 571:458b6c3fea65 release-0.3.7
nginx-0.3.7-RELEASE import
*) Feature: the "access_log" supports the "buffer=" parameter.
*) Bugfix: nginx could not be built on platforms different from i386,
amd64, sparc, and ppc; the bug had appeared in 0.3.2.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 27 Oct 2005 15:46:13 +0000 |
parents | 9c2f3ed7a247 |
children | 326634fb9d47 |
line wrap: on
line diff
--- a/src/core/ngx_conf_file.c Mon Oct 24 15:09:41 2005 +0000 +++ b/src/core/ngx_conf_file.c Thu Oct 27 15:46:13 2005 +0000 @@ -11,6 +11,7 @@ static ngx_int_t ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last); static ngx_int_t ngx_conf_read_token(ngx_conf_t *cf); static char *ngx_conf_include(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); +static void ngx_conf_flush_files(ngx_cycle_t *cycle); static ngx_command_t ngx_conf_commands[] = { @@ -36,7 +37,7 @@ NULL, /* init process */ NULL, /* init thread */ NULL, /* exit thread */ - NULL, /* exit process */ + ngx_conf_flush_files, /* exit process */ NULL, /* exit master */ NGX_MODULE_V1_PADDING }; @@ -742,10 +743,44 @@ file->name.data = NULL; } + file->buffer = NULL; + return file; } +static void +ngx_conf_flush_files(ngx_cycle_t *cycle) +{ + ngx_uint_t i; + ngx_list_part_t *part; + ngx_open_file_t *file; + + ngx_log_debug0(NGX_LOG_DEBUG_CORE, cycle->log, 0, "flush files"); + + part = &cycle->open_files.part; + file = part->elts; + + for (i = 0; /* void */ ; i++) { + + if (i >= part->nelts) { + if (part->next == NULL) { + break; + } + part = part->next; + file = part->elts; + i = 0; + } + + if (file[i].buffer == NULL || file[i].pos - file[i].buffer == 0) { + continue; + } + + ngx_write_fd(file[i].fd, file[i].buffer, file[i].pos - file[i].buffer); + } +} + + void ngx_cdecl ngx_conf_log_error(ngx_uint_t level, ngx_conf_t *cf, ngx_err_t err, char *fmt, ...)