Image filter: fixed image_filter rotate inheritance.
Configurations like location /i/ { image_filter resize 200 200; image_filter rotate 180; location /i/foo/ { image_filter resize 200 200; } } resulted in rotation incorrectly applied in the location /i/foo, without any way to clear it. Fix is to handle conf->angle/conf->acv consistently with other filter variables and do not try to inherit them if there are transformations defined for current location.
This commit is contained in:
parent
7e999a3f8a
commit
b9d1936ece
|
@ -1169,10 +1169,22 @@ ngx_http_image_filter_create_conf(ngx_conf_t *cf)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* set by ngx_pcalloc():
|
||||
*
|
||||
* conf->width = 0;
|
||||
* conf->height = 0;
|
||||
* conf->angle = 0;
|
||||
* conf->wcv = NULL;
|
||||
* conf->hcv = NULL;
|
||||
* conf->acv = NULL;
|
||||
* conf->jqcv = NULL;
|
||||
* conf->shcv = NULL;
|
||||
*/
|
||||
|
||||
conf->filter = NGX_CONF_UNSET_UINT;
|
||||
conf->jpeg_quality = NGX_CONF_UNSET_UINT;
|
||||
conf->sharpen = NGX_CONF_UNSET_UINT;
|
||||
conf->angle = NGX_CONF_UNSET_UINT;
|
||||
conf->transparency = NGX_CONF_UNSET;
|
||||
conf->buffer_size = NGX_CONF_UNSET_SIZE;
|
||||
|
||||
|
@ -1195,8 +1207,10 @@ ngx_http_image_filter_merge_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
conf->filter = prev->filter;
|
||||
conf->width = prev->width;
|
||||
conf->height = prev->height;
|
||||
conf->angle = prev->angle;
|
||||
conf->wcv = prev->wcv;
|
||||
conf->hcv = prev->hcv;
|
||||
conf->acv = prev->acv;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1218,14 +1232,6 @@ ngx_http_image_filter_merge_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
}
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size,
|
||||
|
|
Loading…
Reference in New Issue