ПРОЕКТЫ 


  АРХИВ 


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: upload module и @fallback



пока я тщетно пытаюсь какнибудь вынуть эти переменные из модуля, я добился хотябы что бы NGINX не валился когда передаешь эти переменные в лог, на всякий случай вышлю патч, скажите что думаете на эту тему.

On 12/16/2011 12:05 PM, Roman Vasilyev wrote:
On 12/16/2011 11:45 AM, Valery Kholodkov wrote:
Да, имеется в виду модуль nginx. Данная конфигурация не будет работать, так как большинство переменных модуля доступны только в процессе загрузки, а не во время записи в лог.

А можно с вами скоординироваться и дописать возможность снимать это как простые переменные из модуля:
a) в момент uwsgi_param;
b) в момент записи в лог;
?

ЗЫ: ОООООЧЕНЬ надо

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru

--- ngx_http_upload_module.c.orig       2011-12-16 14:58:26.000000000 -0800
+++ ngx_http_upload_module.c    2011-12-16 15:09:56.000000000 -0800
@@ -2076,6 +2076,9 @@
     ngx_http_upload_ctx_t  *u;
 
     u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      return;
+    }
 
     s = (ngx_str_t *) ((char *) u + data);
 
@@ -2090,12 +2093,15 @@
     ngx_http_upload_ctx_t  *u;
     ngx_str_t              *value;
 
+    u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      return NGX_ERROR;
+    }
+
     v->valid = 1;
     v->no_cacheable = 0;
     v->not_found = 0;
 
-    u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
-
     value = (ngx_str_t *) ((char *) u + data);
 
     v->data = value->data;
@@ -2114,6 +2120,9 @@
     u_char                 *hex_table;
 
     u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      return NGX_ERROR;
+    }
 
     if(u->md5_ctx == NULL || u->partial_content) {
         v->not_found = 1;
@@ -2151,6 +2160,9 @@
     u_char                 *hex_table;
 
     u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      return NGX_ERROR;
+    }
 
     if(u->sha1_ctx == NULL || u->partial_content) {
         v->not_found = 1;
@@ -2187,6 +2199,9 @@
     uint32_t               *value;
 
     u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      return NGX_ERROR;
+    }
 
     if(u->partial_content) {
         v->not_found = 1;
@@ -2218,6 +2233,9 @@
     off_t                  *value;
 
     u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      return NGX_ERROR;
+    }
 
     value = (off_t *) ((char *) u + data);
 
@@ -2244,6 +2262,11 @@
     ngx_http_upload_range_t *value;
 
     u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+                      "context not set");
+      return;
+    }
 
     value = (ngx_http_upload_range_t *) ((char *) u + data);
 
@@ -2265,6 +2288,9 @@
     ngx_http_upload_range_t *value;
 
     u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      return NGX_ERROR;
+    }
 
     value = (ngx_http_upload_range_t *) ((char *) u + data);
 
@@ -2294,6 +2320,9 @@
     ngx_uint_t             *value;
 
     u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+    if (!u) {
+      return NGX_ERROR;
+    }
 
     value = (ngx_uint_t *) ((char *) u + data);
 
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.