ПРОЕКТЫ 


  АРХИВ 


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]

реакция image_filter на return



Доброго времени суток,

Наткнулся на багофичу:

Пример чуть синтетический, но рабочий:

location /r/ {
    if ( $uri = "/r/want_403" ) {
        return 403;
    }

    rewrite ^/r/(.+)$ /$1 break;

    proxy_pass http://host.tld;

    image_filter resize 100 100;
}

proxy_pass ожидаемо реагирует на return и никуда не ходит
но image_filter не взирая на 403 (Forbidden) пытается отработать,
в результате отдавая 415 (Unsupported Media Type)

Смотрел на ngx_http_addition_module, там реакция на return
полностью соответсвует док-ции. Т.е. если срабатывает return 403,
то add_after_body уже не отрабатывает.

Получилось полечить image_filter патчем (см. аттач).
Хочется услышать мненеие разработчиков.

Спасибо,
-- 
GD <gd@xxxxxxxxxxx>
--- src/http/modules/ngx_http_image_filter_module.c     2011-11-23 
14:22:44.000000000 +0400
+++ src/http/modules/ngx_http_image_filter_module.c     2012-01-11 
21:08:36.000000000 +0400
@@ -202,7 +202,7 @@
     ngx_http_image_filter_ctx_t   *ctx;
     ngx_http_image_filter_conf_t  *conf;
 
-    if (r->headers_out.status == NGX_HTTP_NOT_MODIFIED) {
+    if (r->headers_out.status >= NGX_HTTP_NOT_MODIFIED) {
         return ngx_http_next_header_filter(r);
     }
 
@@ -277,7 +277,7 @@
 
     ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "image filter");
 
-    if (in == NULL) {
+    if (in == NULL || r->headers_out.status >= NGX_HTTP_NOT_MODIFIED) {
         return ngx_http_next_body_filter(r, in);
     }
 
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.