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,