Mercurial > hg > nginx
comparison src/http/ngx_http_variables.c @ 3144:ecbfc3396c42
allow to log invalid $request in access_log always,
before it was logged only if error_log was set to info or debug level
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 21 Sep 2009 15:55:56 +0000 |
parents | 8535736ace1a |
children | c6a40c815d45 90d746a95258 |
comparison
equal
deleted
inserted
replaced
3143:ab6258e18099 | 3144:ecbfc3396c42 |
---|---|
22 ngx_http_variable_value_t *v, uintptr_t data); | 22 ngx_http_variable_value_t *v, uintptr_t data); |
23 | 23 |
24 static ngx_int_t ngx_http_variable_unknown_header_in(ngx_http_request_t *r, | 24 static ngx_int_t ngx_http_variable_unknown_header_in(ngx_http_request_t *r, |
25 ngx_http_variable_value_t *v, uintptr_t data); | 25 ngx_http_variable_value_t *v, uintptr_t data); |
26 static ngx_int_t ngx_http_variable_unknown_header_out(ngx_http_request_t *r, | 26 static ngx_int_t ngx_http_variable_unknown_header_out(ngx_http_request_t *r, |
27 ngx_http_variable_value_t *v, uintptr_t data); | |
28 static ngx_int_t ngx_http_variable_request_line(ngx_http_request_t *r, | |
27 ngx_http_variable_value_t *v, uintptr_t data); | 29 ngx_http_variable_value_t *v, uintptr_t data); |
28 static ngx_int_t ngx_http_variable_cookie(ngx_http_request_t *r, | 30 static ngx_int_t ngx_http_variable_cookie(ngx_http_request_t *r, |
29 ngx_http_variable_value_t *v, uintptr_t data); | 31 ngx_http_variable_value_t *v, uintptr_t data); |
30 static ngx_int_t ngx_http_variable_argument(ngx_http_request_t *r, | 32 static ngx_int_t ngx_http_variable_argument(ngx_http_request_t *r, |
31 ngx_http_variable_value_t *v, uintptr_t data); | 33 ngx_http_variable_value_t *v, uintptr_t data); |
162 | 164 |
163 { ngx_string("document_uri"), NULL, ngx_http_variable_request, | 165 { ngx_string("document_uri"), NULL, ngx_http_variable_request, |
164 offsetof(ngx_http_request_t, uri), | 166 offsetof(ngx_http_request_t, uri), |
165 NGX_HTTP_VAR_NOCACHEABLE, 0 }, | 167 NGX_HTTP_VAR_NOCACHEABLE, 0 }, |
166 | 168 |
167 { ngx_string("request"), NULL, ngx_http_variable_request, | 169 { ngx_string("request"), NULL, ngx_http_variable_request_line, 0, 0, 0 }, |
168 offsetof(ngx_http_request_t, request_line), 0, 0 }, | |
169 | 170 |
170 { ngx_string("document_root"), NULL, | 171 { ngx_string("document_root"), NULL, |
171 ngx_http_variable_document_root, 0, NGX_HTTP_VAR_NOCACHEABLE, 0 }, | 172 ngx_http_variable_document_root, 0, NGX_HTTP_VAR_NOCACHEABLE, 0 }, |
172 | 173 |
173 { ngx_string("realpath_root"), NULL, | 174 { ngx_string("realpath_root"), NULL, |
749 return NGX_OK; | 750 return NGX_OK; |
750 } | 751 } |
751 | 752 |
752 | 753 |
753 static ngx_int_t | 754 static ngx_int_t |
755 ngx_http_variable_request_line(ngx_http_request_t *r, | |
756 ngx_http_variable_value_t *v, uintptr_t data) | |
757 { | |
758 u_char *p, *s; | |
759 | |
760 s = r->request_line.data; | |
761 | |
762 if (s == NULL) { | |
763 s = r->request_start; | |
764 | |
765 if (s == NULL) { | |
766 v->not_found = 1; | |
767 return NGX_OK; | |
768 } | |
769 | |
770 for (p = s; p < r->header_in->last; p++) { | |
771 if (*p == CR || *p == LF) { | |
772 break; | |
773 } | |
774 } | |
775 | |
776 r->request_line.len = p - s; | |
777 r->request_line.data = s; | |
778 } | |
779 | |
780 v->len = r->request_line.len; | |
781 v->valid = 1; | |
782 v->no_cacheable = 0; | |
783 v->not_found = 0; | |
784 v->data = s; | |
785 | |
786 return NGX_OK; | |
787 } | |
788 | |
789 | |
790 static ngx_int_t | |
754 ngx_http_variable_cookie(ngx_http_request_t *r, ngx_http_variable_value_t *v, | 791 ngx_http_variable_cookie(ngx_http_request_t *r, ngx_http_variable_value_t *v, |
755 uintptr_t data) | 792 uintptr_t data) |
756 { | 793 { |
757 ngx_str_t *name = (ngx_str_t *) data; | 794 ngx_str_t *name = (ngx_str_t *) data; |
758 | 795 |