Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: server signature: nginx version in variable
- To: nginx-ru@xxxxxxxxx
- Subject: Re: server signature: nginx version in variable
- From: "Nick S. Grechukh" <gns@xxxxxxxxxxx>
- Date: Wed, 11 Jul 2007 17:02:17 +0300
- Dkim-signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:in-reply-to:mime-version:content-type:references:x-google-sender-auth; b=arX7zco1cCpbv6/qrVgjM790rx0fHv/2lMkUo9q64Q1R35wFAYHdSweffBRLEsvgoONC32wOzZzSxB9JbQrSKpUXr+IIIvnSPuaaP4JQWUo3sfF4J82GeRV2OngGkvpR4747CHiCJfoqWqo47IzGtDAPGmfjtavWaNUlEZ1Jj3c=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:in-reply-to:mime-version:content-type:references:x-google-sender-auth; b=bF0Z+0jFTq9icbpAo/miL28dmuK2BJSm5ciG8+cAS6cAap5QyQPfBKWdCBBFwFngz8Q3EmEMIxNCGCcHiztO4dxuOXgQTsK9uym06hlPNRwb5cXZJ6hm1aDlgepCQEWA+iK0JHCjk/8rlY6ZdlXcBeNNS3WM9b9M+wAjNmy/bb0=
- In-reply-to: <20070705202305.GH28237@xxxxxxxxxxxxx>
- References: <a4ab440f0707050802r100a5dabnda7414b13e9ceddc@xxxxxxxxxxxxxx> <20070705202305.GH28237@xxxxxxxxxxxxx>
2007/7/5, Igor Sysoev <is@xxxxxxxxxxxxx>:
On Thu, Jul 05, 2007 at 06:02:38PM +0300, Nick S. Grechukh wrote:
> Попытался выдать в fastcgi переменную SERVER_SIGNATURE, как это делает
> апач. Оказалось, что переменной с версией софта нету, статически-то
> можно написать в конфиге слово "nginx/0.5.19", но так неинтересно.
>
> Я правильно понимаю, что не существует такой встроенной переменной?
> Если да, то будет ли принят патч, добавляющий эту возможность?
Да, такой переменной нет. Добавить - не сложно.
oh well, вот такое наваял. Правда, так и не понял, можно ли без
сильного вмешательства переменную определить не в http_core а в core.
Хотя, с другой стороны, зачем оно в mail.
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -8,6 +8,7 @@
#include <ngx_core.h>
#include <ngx_event.h>
#include <ngx_http.h>
+#include <nginx.h>
static ngx_int_t ngx_http_variable_request(ngx_http_request_t *r,
@@ -66,6 +67,9 @@ static ngx_int_t
ngx_http_variable_sent_keep_alive(ngx_http_request_t *r,
static ngx_int_t ngx_http_variable_sent_transfer_encoding(ngx_http_request_t
*r,
ngx_http_variable_value_t *v, uintptr_t data);
+static ngx_int_t ngx_http_variable_nginx_version(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data);
+
/*
* TODO:
@@ -205,6 +209,8 @@ static ngx_http_variable_t ngx_http_core_variables[] = {
offsetof(ngx_http_request_t, limit_rate),
NGX_HTTP_VAR_CHANGABLE|NGX_HTTP_VAR_NOCACHABLE, 0 },
+ { ngx_string("nginx_version"), NULL, ngx_http_variable_nginx_version, 0,
0, 0 },
+
{ ngx_null_string, NULL, NULL, 0, 0, 0 }
};
@@ -1205,6 +1211,20 @@ ngx_http_variable_request_body_file(ngx_http_request_t
*r,
}
+static ngx_int_t
+ngx_http_variable_nginx_version(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
+{
+ v->len = sizeof(NGINX_VERSION) - 1;
+ v->valid = 1;
+ v->no_cachable = 0;
+ v->not_found = 0;
+ v->data = (u_char *) NGINX_VERSION;
+
+ return NGX_OK;
+}
+
+
ngx_int_t
ngx_http_variables_add_core_vars(ngx_conf_t *cf)
{
|