Mercurial > hg > nginx-vendor-current
comparison src/http/modules/ngx_http_image_filter_module.c @ 694:88a1b4797f2e NGINX_1_3_10
nginx 1.3.10
*) Change: domain names specified in configuration file are now resolved
to IPv6 addresses as well as IPv4 ones.
*) Change: now if the "include" directive with mask is used on Unix
systems, included files are sorted in alphabetical order.
*) Change: the "add_header" directive adds headers to 201 responses.
*) Feature: the "geo" directive now supports IPv6 addresses in CIDR
notation.
*) Feature: the "flush" and "gzip" parameters of the "access_log"
directive.
*) Feature: variables support in the "auth_basic" directive.
*) Bugfix: nginx could not be built with the ngx_http_perl_module in
some cases.
*) Bugfix: a segmentation fault might occur in a worker process if the
ngx_http_xslt_module was used.
*) Bugfix: nginx could not be built on MacOSX in some cases.
Thanks to Piotr Sikora.
*) Bugfix: the "limit_rate" directive with high rates might result in
truncated responses on 32-bit platforms.
Thanks to Alexey Antropov.
*) Bugfix: a segmentation fault might occur in a worker process if the
"if" directive was used.
Thanks to Piotr Sikora.
*) Bugfix: a "100 Continue" response was issued with "413 Request Entity
Too Large" responses.
*) Bugfix: the "image_filter", "image_filter_jpeg_quality" and
"image_filter_sharpen" directives might be inherited incorrectly.
Thanks to Ian Babrou.
*) Bugfix: "crypt_r() failed" errors might appear if the "auth_basic"
directive was used on Linux.
*) Bugfix: in backup servers handling.
Thanks to Thomas Chen.
*) Bugfix: proxied HEAD requests might return incorrect response if the
"gzip" directive was used.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 25 Dec 2012 00:00:00 +0400 |
parents | f41d4b305d22 |
children |
comparison
equal
deleted
inserted
replaced
693:cfd4279acc6e | 694:88a1b4797f2e |
---|---|
1167 conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_image_filter_conf_t)); | 1167 conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_image_filter_conf_t)); |
1168 if (conf == NULL) { | 1168 if (conf == NULL) { |
1169 return NULL; | 1169 return NULL; |
1170 } | 1170 } |
1171 | 1171 |
1172 /* | |
1173 * set by ngx_pcalloc(): | |
1174 * | |
1175 * conf->width = 0; | |
1176 * conf->height = 0; | |
1177 * conf->angle = 0; | |
1178 * conf->wcv = NULL; | |
1179 * conf->hcv = NULL; | |
1180 * conf->acv = NULL; | |
1181 * conf->jqcv = NULL; | |
1182 * conf->shcv = NULL; | |
1183 */ | |
1184 | |
1172 conf->filter = NGX_CONF_UNSET_UINT; | 1185 conf->filter = NGX_CONF_UNSET_UINT; |
1173 conf->jpeg_quality = NGX_CONF_UNSET_UINT; | 1186 conf->jpeg_quality = NGX_CONF_UNSET_UINT; |
1174 conf->sharpen = NGX_CONF_UNSET_UINT; | 1187 conf->sharpen = NGX_CONF_UNSET_UINT; |
1175 conf->angle = NGX_CONF_UNSET_UINT; | |
1176 conf->transparency = NGX_CONF_UNSET; | 1188 conf->transparency = NGX_CONF_UNSET; |
1177 conf->buffer_size = NGX_CONF_UNSET_SIZE; | 1189 conf->buffer_size = NGX_CONF_UNSET_SIZE; |
1178 | 1190 |
1179 return conf; | 1191 return conf; |
1180 } | 1192 } |
1193 | 1205 |
1194 } else { | 1206 } else { |
1195 conf->filter = prev->filter; | 1207 conf->filter = prev->filter; |
1196 conf->width = prev->width; | 1208 conf->width = prev->width; |
1197 conf->height = prev->height; | 1209 conf->height = prev->height; |
1210 conf->angle = prev->angle; | |
1198 conf->wcv = prev->wcv; | 1211 conf->wcv = prev->wcv; |
1199 conf->hcv = prev->hcv; | 1212 conf->hcv = prev->hcv; |
1200 } | 1213 conf->acv = prev->acv; |
1201 } | 1214 } |
1202 | 1215 } |
1203 /* 75 is libjpeg default quality */ | 1216 |
1204 ngx_conf_merge_uint_value(conf->jpeg_quality, prev->jpeg_quality, 75); | 1217 if (conf->jpeg_quality == NGX_CONF_UNSET_UINT) { |
1205 | 1218 |
1206 if (conf->jqcv == NULL) { | 1219 /* 75 is libjpeg default quality */ |
1207 conf->jqcv = prev->jqcv; | 1220 ngx_conf_merge_uint_value(conf->jpeg_quality, prev->jpeg_quality, 75); |
1208 } | 1221 |
1209 | 1222 if (conf->jqcv == NULL) { |
1210 ngx_conf_merge_uint_value(conf->sharpen, prev->sharpen, 0); | 1223 conf->jqcv = prev->jqcv; |
1211 | 1224 } |
1212 if (conf->shcv == NULL) { | 1225 } |
1213 conf->shcv = prev->shcv; | 1226 |
1214 } | 1227 if (conf->sharpen == NGX_CONF_UNSET_UINT) { |
1215 | 1228 ngx_conf_merge_uint_value(conf->sharpen, prev->sharpen, 0); |
1216 ngx_conf_merge_uint_value(conf->angle, prev->angle, 0); | 1229 |
1217 if (conf->acv == NULL) { | 1230 if (conf->shcv == NULL) { |
1218 conf->acv = prev->acv; | 1231 conf->shcv = prev->shcv; |
1232 } | |
1219 } | 1233 } |
1220 | 1234 |
1221 ngx_conf_merge_value(conf->transparency, prev->transparency, 1); | 1235 ngx_conf_merge_value(conf->transparency, prev->transparency, 1); |
1222 | 1236 |
1223 ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, | 1237 ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, |