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
|