diff src/http/ngx_http_variables.c @ 561:e48ebafc6939 release-0.3.2

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.
author Igor Sysoev <igor@sysoev.ru>
date Wed, 12 Oct 2005 13:50:36 +0000
parents ecd9c160f25b
children 174f1e853e1e
line wrap: on
line diff
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -33,6 +33,8 @@ static ngx_http_variable_value_t *
 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_cor
     { 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 },
 
@@ -641,6 +642,33 @@ ngx_http_variable_request_filename(ngx_h
 
 
 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)
 {
     ngx_int_t                   rc;