Mercurial > hg > nginx-vendor-1-0
comparison src/http/ngx_http_upstream.c @ 540:c04fa65fe604 NGINX_0_8_22
nginx 0.8.22
*) Feature: the "proxy_bind", "fastcgi_bind", and "memcached_bind"
directives.
*) Feature: the "access" and the "deny" directives support IPv6.
*) Feature: the "set_real_ip_from" directive supports IPv6 addresses in
request headers.
*) Feature: the "unix:" parameter of the "set_real_ip_from" directive.
*) Bugfix: nginx did not delete unix domain socket after configuration
testing.
*) Bugfix: nginx deleted unix domain socket while online upgrade.
*) Bugfix: the "!-x" operator did not work.
Thanks to Maxim Dounin.
*) Bugfix: a segmentation fault might occur in a worker process, if
limit_rate was used in HTTPS server.
Thanks to Maxim Dounin.
*) Bugfix: a segmentation fault might occur in a worker process while
$limit_rate logging.
Thanks to Maxim Dounin.
*) Bugfix: a segmentation fault might occur in a worker process, if
there was no "listen" directive in "server" block; the bug had
appeared in 0.8.21.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 03 Nov 2009 00:00:00 +0300 |
parents | 0dc162a5f3e8 |
children | 5c576ea5dbd9 |
comparison
equal
deleted
inserted
replaced
539:c88014f74832 | 540:c04fa65fe604 |
---|---|
477 if (u->create_request(r) != NGX_OK) { | 477 if (u->create_request(r) != NGX_OK) { |
478 ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); | 478 ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); |
479 return; | 479 return; |
480 } | 480 } |
481 | 481 |
482 u->peer.local = u->conf->local; | |
483 | |
482 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); | 484 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); |
483 | 485 |
484 u->output.alignment = clcf->directio_alignment; | 486 u->output.alignment = clcf->directio_alignment; |
485 u->output.pool = r->pool; | 487 u->output.pool = r->pool; |
486 u->output.bufs.num = 1; | 488 u->output.bufs.num = 1; |
4194 | 4196 |
4195 return uscf; | 4197 return uscf; |
4196 } | 4198 } |
4197 | 4199 |
4198 | 4200 |
4201 char * | |
4202 ngx_http_upsteam_bind_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, | |
4203 void *conf) | |
4204 { | |
4205 char *p = conf; | |
4206 | |
4207 ngx_int_t rc; | |
4208 ngx_str_t *value; | |
4209 ngx_addr_t **paddr; | |
4210 | |
4211 paddr = (ngx_addr_t **) (p + cmd->offset); | |
4212 | |
4213 *paddr = ngx_palloc(cf->pool, sizeof(ngx_addr_t)); | |
4214 if (*paddr == NULL) { | |
4215 return NGX_CONF_ERROR; | |
4216 } | |
4217 | |
4218 value = cf->args->elts; | |
4219 | |
4220 rc = ngx_parse_addr(cf->pool, *paddr, value[1].data, value[1].len); | |
4221 | |
4222 switch (rc) { | |
4223 case NGX_OK: | |
4224 (*paddr)->name = value[1]; | |
4225 return NGX_CONF_OK; | |
4226 | |
4227 case NGX_DECLINED: | |
4228 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
4229 "invalid address \"%V\"", &value[1]); | |
4230 default: | |
4231 return NGX_CONF_ERROR; | |
4232 } | |
4233 } | |
4234 | |
4235 | |
4199 ngx_int_t | 4236 ngx_int_t |
4200 ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf, | 4237 ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf, |
4201 ngx_http_upstream_conf_t *conf, ngx_http_upstream_conf_t *prev, | 4238 ngx_http_upstream_conf_t *conf, ngx_http_upstream_conf_t *prev, |
4202 ngx_str_t *default_hide_headers, ngx_hash_init_t *hash) | 4239 ngx_str_t *default_hide_headers, ngx_hash_init_t *hash) |
4203 { | 4240 { |