Mercurial > hg > nginx-vendor-current
comparison src/http/ngx_http_upstream.c @ 654:753f505670e0 NGINX_1_1_11
nginx 1.1.11
*) Feature: the "so_keepalive" parameter of the "listen" directive.
Thanks to Vsevolod Stakhov.
*) Feature: the "if_not_empty" parameter of the
"fastcgi/scgi/uwsgi_param" directives.
*) Feature: the $https variable.
*) Feature: the "proxy_redirect" directive supports variables in the
first parameter.
*) Feature: the "proxy_redirect" directive supports regular expressions.
*) Bugfix: the $sent_http_cache_control variable might contain a wrong
value if the "expires" directive was used.
Thanks to Yichun Zhang.
*) Bugfix: the "read_ahead" directive might not work combined with
"try_files" and "open_file_cache".
*) Bugfix: a segmentation fault might occur in a worker process if small
time was used in the "inactive" parameter of the "proxy_cache_path"
directive.
*) Bugfix: responses from cache might hang.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 12 Dec 2011 00:00:00 +0400 |
parents | 4d05413aebad |
children | 9d21dad0b5a1 |
comparison
equal
deleted
inserted
replaced
653:8c96af2112c1 | 654:753f505670e0 |
---|---|
4442 return NGX_CONF_ERROR; | 4442 return NGX_CONF_ERROR; |
4443 } | 4443 } |
4444 } | 4444 } |
4445 | 4445 |
4446 | 4446 |
4447 char * | |
4448 ngx_http_upstream_param_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, | |
4449 void *conf) | |
4450 { | |
4451 char *p = conf; | |
4452 | |
4453 ngx_str_t *value; | |
4454 ngx_array_t **a; | |
4455 ngx_http_upstream_param_t *param; | |
4456 | |
4457 a = (ngx_array_t **) (p + cmd->offset); | |
4458 | |
4459 if (*a == NULL) { | |
4460 *a = ngx_array_create(cf->pool, 4, sizeof(ngx_http_upstream_param_t)); | |
4461 if (*a == NULL) { | |
4462 return NGX_CONF_ERROR; | |
4463 } | |
4464 } | |
4465 | |
4466 param = ngx_array_push(*a); | |
4467 if (param == NULL) { | |
4468 return NGX_CONF_ERROR; | |
4469 } | |
4470 | |
4471 value = cf->args->elts; | |
4472 | |
4473 param->key = value[1]; | |
4474 param->value = value[2]; | |
4475 param->skip_empty = 0; | |
4476 | |
4477 if (cf->args->nelts == 4) { | |
4478 if (ngx_strcmp(value[3].data, "if_not_empty") != 0) { | |
4479 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
4480 "invalid parameter \"%V\"", &value[3]); | |
4481 return NGX_CONF_ERROR; | |
4482 } | |
4483 | |
4484 param->skip_empty = 1; | |
4485 } | |
4486 | |
4487 return NGX_CONF_OK; | |
4488 } | |
4489 | |
4490 | |
4447 ngx_int_t | 4491 ngx_int_t |
4448 ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf, | 4492 ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf, |
4449 ngx_http_upstream_conf_t *conf, ngx_http_upstream_conf_t *prev, | 4493 ngx_http_upstream_conf_t *conf, ngx_http_upstream_conf_t *prev, |
4450 ngx_str_t *default_hide_headers, ngx_hash_init_t *hash) | 4494 ngx_str_t *default_hide_headers, ngx_hash_init_t *hash) |
4451 { | 4495 { |