comparison src/http/ngx_http_variables.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 6db6e93f55ee
children
comparison
equal deleted inserted replaced
693:cfd4279acc6e 694:88a1b4797f2e
328 ngx_uint_t i; 328 ngx_uint_t i;
329 ngx_hash_key_t *key; 329 ngx_hash_key_t *key;
330 ngx_http_variable_t *v; 330 ngx_http_variable_t *v;
331 ngx_http_core_main_conf_t *cmcf; 331 ngx_http_core_main_conf_t *cmcf;
332 332
333 if (name->len == 0) {
334 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
335 "invalid variable name \"$\"");
336 return NULL;
337 }
338
333 cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module); 339 cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module);
334 340
335 key = cmcf->variables_keys->keys.elts; 341 key = cmcf->variables_keys->keys.elts;
336 for (i = 0; i < cmcf->variables_keys->keys.nelts; i++) { 342 for (i = 0; i < cmcf->variables_keys->keys.nelts; i++) {
337 if (name->len != key[i].key.len 343 if (name->len != key[i].key.len
390 ngx_http_get_variable_index(ngx_conf_t *cf, ngx_str_t *name) 396 ngx_http_get_variable_index(ngx_conf_t *cf, ngx_str_t *name)
391 { 397 {
392 ngx_uint_t i; 398 ngx_uint_t i;
393 ngx_http_variable_t *v; 399 ngx_http_variable_t *v;
394 ngx_http_core_main_conf_t *cmcf; 400 ngx_http_core_main_conf_t *cmcf;
401
402 if (name->len == 0) {
403 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
404 "invalid variable name \"$\"");
405 return NGX_ERROR;
406 }
395 407
396 cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module); 408 cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module);
397 409
398 v = cmcf->variables.elts; 410 v = cmcf->variables.elts;
399 411