aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2012-12-20 19:04:28 +0000
committerMaxim Dounin <mdounin@mdounin.ru>2012-12-20 19:04:28 +0000
commit717acb74a72140537e62de50f91d557af02f2f6f (patch)
tree12ba9aa494cc5d709da0e7a214f24a164c59486e /src
parentf4b9d891033cba1eb9b9ab0ce9b4a4c625bc3994 (diff)
downloadnginx-717acb74a72140537e62de50f91d557af02f2f6f.tar.gz
nginx-717acb74a72140537e62de50f91d557af02f2f6f.zip
Image filter: configuration inheritance fixes.
The image_filter_jpeg_quality, image_filter_sharpen and "image_filter rotate" were inherited incorrectly if a directive with variables was defined, and then redefined to a literal value, i.e. in configurations like image_filter_jpeg_quality $arg_q; location / { image_filter_jpeg_quality 50; } Patch by Ian Babrou, with minor changes.
Diffstat (limited to 'src')
-rw-r--r--src/http/modules/ngx_http_image_filter_module.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/http/modules/ngx_http_image_filter_module.c b/src/http/modules/ngx_http_image_filter_module.c
index c853c33d0..823cf0ea3 100644
--- a/src/http/modules/ngx_http_image_filter_module.c
+++ b/src/http/modules/ngx_http_image_filter_module.c
@@ -1200,22 +1200,30 @@ ngx_http_image_filter_merge_conf(ngx_conf_t *cf, void *parent, void *child)
}
}
- /* 75 is libjpeg default quality */
- ngx_conf_merge_uint_value(conf->jpeg_quality, prev->jpeg_quality, 75);
+ if (conf->jpeg_quality == NGX_CONF_UNSET_UINT) {
- if (conf->jqcv == NULL) {
- conf->jqcv = prev->jqcv;
+ /* 75 is libjpeg default quality */
+ ngx_conf_merge_uint_value(conf->jpeg_quality, prev->jpeg_quality, 75);
+
+ if (conf->jqcv == NULL) {
+ conf->jqcv = prev->jqcv;
+ }
}
- ngx_conf_merge_uint_value(conf->sharpen, prev->sharpen, 0);
+ if (conf->sharpen == NGX_CONF_UNSET_UINT) {
+ ngx_conf_merge_uint_value(conf->sharpen, prev->sharpen, 0);
- if (conf->shcv == NULL) {
- conf->shcv = prev->shcv;
+ if (conf->shcv == NULL) {
+ conf->shcv = prev->shcv;
+ }
}
- ngx_conf_merge_uint_value(conf->angle, prev->angle, 0);
- if (conf->acv == NULL) {
- conf->acv = prev->acv;
+ if (conf->angle == NGX_CONF_UNSET_UINT) {
+ ngx_conf_merge_uint_value(conf->angle, prev->angle, 0);
+
+ if (conf->acv == NULL) {
+ conf->acv = prev->acv;
+ }
}
ngx_conf_merge_value(conf->transparency, prev->transparency, 1);