comparison src/http/ngx_http_variables.c @ 1350:8682f64fccb3

allow to set $args
author Igor Sysoev <igor@sysoev.ru>
date Sun, 29 Jul 2007 17:55:37 +0000
parents 80e6f567574f
children 9ca095d36863
comparison
equal deleted inserted replaced
1344:8f5b5641966c 1350:8682f64fccb3
10 #include <ngx_http.h> 10 #include <ngx_http.h>
11 #include <nginx.h> 11 #include <nginx.h>
12 12
13 13
14 static ngx_int_t ngx_http_variable_request(ngx_http_request_t *r, 14 static ngx_int_t ngx_http_variable_request(ngx_http_request_t *r,
15 ngx_http_variable_value_t *v, uintptr_t data);
16 static void ngx_http_variable_request_set(ngx_http_request_t *r,
15 ngx_http_variable_value_t *v, uintptr_t data); 17 ngx_http_variable_value_t *v, uintptr_t data);
16 static void ngx_http_variable_request_set_size(ngx_http_request_t *r, 18 static void ngx_http_variable_request_set_size(ngx_http_request_t *r,
17 ngx_http_variable_value_t *v, uintptr_t data); 19 ngx_http_variable_value_t *v, uintptr_t data);
18 static ngx_int_t ngx_http_variable_header(ngx_http_request_t *r, 20 static ngx_int_t ngx_http_variable_header(ngx_http_request_t *r,
19 ngx_http_variable_value_t *v, uintptr_t data); 21 ngx_http_variable_value_t *v, uintptr_t data);
153 155
154 { ngx_string("query_string"), NULL, ngx_http_variable_request, 156 { ngx_string("query_string"), NULL, ngx_http_variable_request,
155 offsetof(ngx_http_request_t, args), 157 offsetof(ngx_http_request_t, args),
156 NGX_HTTP_VAR_NOCACHABLE, 0 }, 158 NGX_HTTP_VAR_NOCACHABLE, 0 },
157 159
158 { ngx_string("args"), NULL, ngx_http_variable_request, 160 { ngx_string("args"),
161 ngx_http_variable_request_set,
162 ngx_http_variable_request,
159 offsetof(ngx_http_request_t, args), 163 offsetof(ngx_http_request_t, args),
160 NGX_HTTP_VAR_NOCACHABLE, 0 }, 164 NGX_HTTP_VAR_CHANGABLE|NGX_HTTP_VAR_NOCACHABLE, 0 },
161 165
162 { ngx_string("request_filename"), NULL, 166 { ngx_string("request_filename"), NULL,
163 ngx_http_variable_request_filename, 0, 167 ngx_http_variable_request_filename, 0,
164 NGX_HTTP_VAR_NOCACHABLE, 0 }, 168 NGX_HTTP_VAR_NOCACHABLE, 0 },
165 169
499 return NGX_OK; 503 return NGX_OK;
500 } 504 }
501 505
502 506
503 static void 507 static void
508 ngx_http_variable_request_set(ngx_http_request_t *r,
509 ngx_http_variable_value_t *v, uintptr_t data)
510 {
511 ngx_str_t *s;
512
513 s = (ngx_str_t *) ((char *) r + data);
514
515 s->len = v->len;
516 s->data = v->data;
517 }
518
519
520 static void
504 ngx_http_variable_request_set_size(ngx_http_request_t *r, 521 ngx_http_variable_request_set_size(ngx_http_request_t *r,
505 ngx_http_variable_value_t *v, uintptr_t data) 522 ngx_http_variable_value_t *v, uintptr_t data)
506 { 523 {
507 ssize_t s, *sp; 524 ssize_t s, *sp;
508 ngx_str_t val; 525 ngx_str_t val;