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