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 {