4
#include "ngx_http_echo_var.h"
5
#include "ngx_http_echo_timer.h"
6
#include "ngx_http_echo_request_info.h"
7
#include "ngx_http_echo_foreach.h"
9
static ngx_int_t ngx_http_echo_incr_variable(ngx_http_request_t *r,
10
ngx_http_variable_value_t *v, uintptr_t data);
12
static ngx_http_variable_t ngx_http_echo_variables[] = {
13
{ ngx_string("echo_timer_elapsed"), NULL,
14
ngx_http_echo_timer_elapsed_variable, 0,
15
NGX_HTTP_VAR_NOCACHEABLE, 0 },
17
{ ngx_string("echo_request_method"), NULL,
18
ngx_http_echo_request_method_variable, 0,
19
NGX_HTTP_VAR_NOCACHEABLE, 0 },
21
{ ngx_string("echo_cacheable_request_uri"), NULL,
22
ngx_http_echo_cacheable_request_uri_variable, 0,
25
{ ngx_string("echo_request_uri"), NULL,
26
ngx_http_echo_request_uri_variable, 0,
29
{ ngx_string("echo_client_request_method"), NULL,
30
ngx_http_echo_client_request_method_variable, 0,
31
NGX_HTTP_VAR_NOCACHEABLE, 0 },
33
{ ngx_string("echo_request_body"), NULL,
34
ngx_http_echo_request_body_variable, 0,
35
NGX_HTTP_VAR_NOCACHEABLE, 0 },
37
{ ngx_string("echo_client_request_headers"), NULL,
38
ngx_http_echo_client_request_headers_variable, 0,
39
NGX_HTTP_VAR_NOCACHEABLE, 0 },
41
{ ngx_string("echo_it"), NULL,
42
ngx_http_echo_it_variable, 0,
43
NGX_HTTP_VAR_NOCACHEABLE, 0 },
45
{ ngx_string("echo_incr"), NULL,
46
ngx_http_echo_incr_variable, 0,
47
NGX_HTTP_VAR_NOCACHEABLE, 0 },
49
{ ngx_string("echo_response_status"), NULL,
50
ngx_http_echo_response_status_variable, 0,
51
NGX_HTTP_VAR_NOCACHEABLE, 0 },
53
{ ngx_null_string, NULL, NULL, 0, 0, 0 }
57
ngx_http_echo_add_variables(ngx_conf_t *cf) {
58
ngx_http_variable_t *var, *v;
59
for (v = ngx_http_echo_variables; v->name.len; v++) {
60
var = ngx_http_add_variable(cf, &v->name, v->flags);
64
var->get_handler = v->get_handler;
71
ngx_http_echo_incr_variable(ngx_http_request_t *r,
72
ngx_http_variable_value_t *v, uintptr_t data) {
73
ngx_http_echo_ctx_t *ctx;
76
ctx = ngx_http_get_module_ctx(r->main, ngx_http_echo_module);
84
p = ngx_palloc(r->pool, NGX_INT_T_LEN);
89
v->len = ngx_sprintf(p, "%ui", ctx->counter) - p;