Mercurial > hg > nginx
comparison src/core/ngx_conf_file.h @ 5053:004af18ddb86 stable-1.2
Merge of r4985, r4986, r4987, r4988, r4989, r5002: access_log gzip.
*) Access log: fixed redundant buffer reallocation. Previously a new
buffer was allocated for every "access_log" directive with the same
file path and "buffer=" parameters, while only one buffer per file
is used.
*) Reopening log files code moved to a separate function. The code
refactored in a way to call custom handler that can do appropriate
cleanup work (if any), like flushing buffers, finishing compress
streams, finalizing connections to log daemon, etc..
*) Access log: the "flush" parameter of the "access_log" directive.
*) Configure: added the NGX_ZLIB define. This was introduced for
conditional compilation of the code that requires the zlib library.
*) Access log: the "gzip" parameter of the "access_log" directive.
Note: this requires zlib version 1.2.0.4 or above to work.
*) The data pointer in ngx_open_file_t objects must be initialized.
Uninitialized pointer may result in arbitrary segfaults if access_log
is used without buffer and without variables in file path.
Patch by Tatsuhiko Kubo (ticket #268).
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 11 Feb 2013 14:34:00 +0000 |
parents | 43b7b9572fe1 |
children | 23a186e8ca45 |
comparison
equal
deleted
inserted
replaced
5052:f2dcb25987df | 5053:004af18ddb86 |
---|---|
89 | 89 |
90 struct ngx_open_file_s { | 90 struct ngx_open_file_s { |
91 ngx_fd_t fd; | 91 ngx_fd_t fd; |
92 ngx_str_t name; | 92 ngx_str_t name; |
93 | 93 |
94 u_char *buffer; | 94 void (*flush)(ngx_open_file_t *file, ngx_log_t *log); |
95 u_char *pos; | |
96 u_char *last; | |
97 | |
98 #if 0 | |
99 /* e.g. append mode, error_log */ | |
100 ngx_uint_t flags; | |
101 /* e.g. reopen db file */ | |
102 ngx_uint_t (*handler)(void *data, ngx_open_file_t *file); | |
103 void *data; | 95 void *data; |
104 #endif | |
105 }; | 96 }; |
106 | 97 |
107 | 98 |
108 #define NGX_MODULE_V1 0, 0, 0, 0, 0, 0, 1 | 99 #define NGX_MODULE_V1 0, 0, 0, 0, 0, 0, 1 |
109 #define NGX_MODULE_V1_PADDING 0, 0, 0, 0, 0, 0, 0, 0 | 100 #define NGX_MODULE_V1_PADDING 0, 0, 0, 0, 0, 0, 0, 0 |