ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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)
 {


 




Copyright © Lexa Software, 1996-2009.