Welcome! Log In Create A New Profile

Advanced

[nginx] Access log: fixed the "if=" parameter with buffering (ti...

Valentin Bartenev
September 13, 2014 01:54PM
details: http://hg.nginx.org/nginx/rev/e3016ee8dba3
branches:
changeset: 5833:e3016ee8dba3
user: Valentin Bartenev <vbart@nginx.com>
date: Sat Sep 13 21:47:13 2014 +0400
description:
Access log: fixed the "if=" parameter with buffering (ticket #625).

It might not work if there were more than one "access_log" directives
pointed to the same file and duplicate buffer parameters.

diffstat:

src/http/modules/ngx_http_log_module.c | 41 ++++++++++++++++-----------------
1 files changed, 20 insertions(+), 21 deletions(-)

diffs (72 lines):

diff -r d09b689911ac -r e3016ee8dba3 src/http/modules/ngx_http_log_module.c
--- a/src/http/modules/ngx_http_log_module.c Fri Sep 12 18:50:47 2014 +0400
+++ b/src/http/modules/ngx_http_log_module.c Sat Sep 13 21:47:13 2014 +0400
@@ -1136,7 +1136,7 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
ngx_int_t gzip;
ngx_uint_t i, n;
ngx_msec_t flush;
- ngx_str_t *value, name, s, filter;
+ ngx_str_t *value, name, s;
ngx_http_log_t *log;
ngx_syslog_peer_t *peer;
ngx_http_log_buf_t *buffer;
@@ -1257,7 +1257,6 @@ process_formats:
size = 0;
flush = 0;
gzip = 0;
- filter.len = 0;

for (i = 3; i < cf->args->nelts; i++) {

@@ -1325,8 +1324,25 @@ process_formats:
}

if (ngx_strncmp(value[i].data, "if=", 3) == 0) {
- filter.len = value[i].len - 3;
- filter.data = value[i].data + 3;
+ s.len = value[i].len - 3;
+ s.data = value[i].data + 3;
+
+ ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
+
+ ccv.cf = cf;
+ ccv.value = &s;
+ ccv.complex_value = ngx_palloc(cf->pool,
+ sizeof(ngx_http_complex_value_t));
+ if (ccv.complex_value == NULL) {
+ return NGX_CONF_ERROR;
+ }
+
+ if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
+ return NGX_CONF_ERROR;
+ }
+
+ log->filter = ccv.complex_value;
+
continue;
}

@@ -1405,23 +1421,6 @@ process_formats:
log->file->data = buffer;
}

- if (filter.len) {
- log->filter = ngx_palloc(cf->pool, sizeof(ngx_http_complex_value_t));
- if (log->filter == NULL) {
- return NGX_CONF_ERROR;
- }
-
- ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
-
- ccv.cf = cf;
- ccv.value = &filter;
- ccv.complex_value = log->filter;
-
- if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
- return NGX_CONF_ERROR;
- }
- }
-
return NGX_CONF_OK;
}


_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Access log: fixed the "if=" parameter with buffering (ti...

Valentin Bartenev 782 September 13, 2014 01:54PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 139
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready