From 784522377ec160bc148ff3bb40fb87ede7506d5d Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Wed, 12 Oct 2005 13:50:36 +0000 Subject: nginx-0.3.2-RELEASE import *) Feature: the Sun Studio 10 C compiler support. *) Feature: the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout" directives. --- src/http/ngx_http_variables.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'src/http/ngx_http_variables.c') diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c index 7b0d231b7..7e4a79f1b 100644 --- a/src/http/ngx_http_variables.c +++ b/src/http/ngx_http_variables.c @@ -32,6 +32,8 @@ static ngx_http_variable_value_t * ngx_http_variable_document_root(ngx_http_request_t *r, uintptr_t data); static ngx_http_variable_value_t * ngx_http_variable_request_filename(ngx_http_request_t *r, uintptr_t data); +static ngx_http_variable_value_t * + ngx_http_variable_request_method(ngx_http_request_t *r, uintptr_t data); static ngx_http_variable_value_t * ngx_http_variable_remote_user(ngx_http_request_t *r, uintptr_t data); @@ -107,8 +109,7 @@ static ngx_http_variable_t ngx_http_core_variables[] = { { ngx_string("server_name"), ngx_http_variable_request, offsetof(ngx_http_request_t, server_name), 0, 0 }, - { ngx_string("request_method"), ngx_http_variable_request, - offsetof(ngx_http_request_t, method_name), 0, 0 }, + { ngx_string("request_method"), ngx_http_variable_request_method, 0, 0, 0 }, { ngx_string("remote_user"), ngx_http_variable_remote_user, 0, 0, 0 }, @@ -640,6 +641,33 @@ ngx_http_variable_request_filename(ngx_http_request_t *r, uintptr_t data) } +static ngx_http_variable_value_t * +ngx_http_variable_request_method(ngx_http_request_t *r, uintptr_t data) +{ + ngx_http_variable_value_t *vv; + + if (r->method_name.data == NULL) { + return NGX_HTTP_VAR_NOT_FOUND; + } + + vv = ngx_palloc(r->pool, sizeof(ngx_http_variable_value_t)); + if (vv == NULL) { + return NULL; + } + + vv->value = 0; + + if (r->upstream && r->upstream->method.len) { + vv->text = r->upstream->method; + + } else { + vv->text = r->method_name; + } + + return vv; +} + + static ngx_http_variable_value_t * ngx_http_variable_remote_user(ngx_http_request_t *r, uintptr_t data) { -- cgit