Mercurial > hg > nginx-vendor-0-5
comparison src/http/ngx_http_upstream_round_robin.c @ 324:7cf404023f50 NGINX_0_5_32
nginx 0.5.32
*) Change: now nginx tries to set the "worker_priority",
"worker_rlimit_nofile", "worker_rlimit_core", and
"worker_rlimit_sigpending" without super-user privileges.
*) Change: now nginx escapes space and "%" in request to a mail proxy
authentication server.
*) Change: now nginx escapes "%" in $memcached_key variable.
*) Change: the special make target "upgrade1" was defined for online
upgrade of 0.1.x versions.
*) Feature: the "add_header Last-Modified ..." directive changes the
"Last-Modified" response header line.
*) Feature: the mail proxy supports AUTHENTICATE in IMAP mode.
Thanks to Maxim Dounin.
*) Feature: the mail proxy supports STARTTLS in SMTP mode.
Thanks to Maxim Dounin.
*) Bugfix: nginx did not close directory file on HEAD request if
autoindex was used.
Thanks to Arkadiusz Patyk.
*) Bugfix: the "proxy_hide_header" and "fastcgi_hide_header" directives
did not hide response header lines whose name was longer than 32
characters.
Thanks to Manlio Perillo.
*) Bugfix: active connection counter always increased if mail proxy was
used.
*) Bugfix: if backend returned response header only using non-buffered
proxy, then nginx closed backend connection on timeout.
*) Bugfix: nginx did not support several "Connection" request header
lines.
*) Bugfix: a charset set by the "charset" directive was not appended to
the "Content-Type" header set by $r->send_http_header().
*) Bugfix: a segmentation fault might occur in worker process if
/dev/poll method was used.
*) Bugfix: nginx did not work on FreeBSD/sparc64.
*) Bugfix: a segmentation fault occurred in worker process if invalid
address was set in the "auth_http" directive.
*) Bugfix: now nginx uses default listen backlog value 511 on all
platforms except FreeBSD.
Thanks to Jiang Hong.
*) Bugfix: now Solaris sendfilev() is not used to transfer the client
request body to FastCGI-server via the unix domain socket.
*) Bugfix: if the same host without specified port was used as backend
for HTTP and HTTPS, then nginx used only one port - 80 or 443.
*) Bugfix: the "proxy_ignore_client_abort" and
"fastcgi_ignore_client_abort" directives did not work; bug appeared
in 0.5.13.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 24 Sep 2007 00:00:00 +0400 |
parents | 1e9e2c5e7c14 |
children | 26ff8d6b618d |
comparison
equal
deleted
inserted
replaced
323:85aeb2da6e4c | 324:7cf404023f50 |
---|---|
62 /* an upstream implicitly defined by proxy_pass, etc. */ | 62 /* an upstream implicitly defined by proxy_pass, etc. */ |
63 | 63 |
64 if (us->port == 0 && us->default_port == 0) { | 64 if (us->port == 0 && us->default_port == 0) { |
65 ngx_log_error(NGX_LOG_EMERG, cf->log, 0, | 65 ngx_log_error(NGX_LOG_EMERG, cf->log, 0, |
66 "no port in upstream \"%V\" in %s:%ui", | 66 "no port in upstream \"%V\" in %s:%ui", |
67 &us->host, us->file_name.data, us->line); | 67 &us->host, us->file_name, us->line); |
68 return NGX_ERROR; | 68 return NGX_ERROR; |
69 } | 69 } |
70 | 70 |
71 ngx_memzero(&u, sizeof(ngx_url_t)); | 71 ngx_memzero(&u, sizeof(ngx_url_t)); |
72 | 72 |
75 | 75 |
76 if (ngx_inet_resolve_host(cf, &u) != NGX_OK) { | 76 if (ngx_inet_resolve_host(cf, &u) != NGX_OK) { |
77 if (u.err) { | 77 if (u.err) { |
78 ngx_log_error(NGX_LOG_EMERG, cf->log, 0, | 78 ngx_log_error(NGX_LOG_EMERG, cf->log, 0, |
79 "%s in upstream \"%V\" in %s:%ui", | 79 "%s in upstream \"%V\" in %s:%ui", |
80 u.err, &us->host, us->file_name.data, us->line); | 80 u.err, &us->host, us->file_name, us->line); |
81 } | 81 } |
82 | 82 |
83 return NGX_ERROR; | 83 return NGX_ERROR; |
84 } | 84 } |
85 | 85 |
426 ssl_session = peer->ssl_session; | 426 ssl_session = peer->ssl_session; |
427 | 427 |
428 rc = ngx_ssl_set_session(pc->connection, ssl_session); | 428 rc = ngx_ssl_set_session(pc->connection, ssl_session); |
429 | 429 |
430 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, | 430 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, |
431 "set session: %p:%d", | 431 "set session: %p:%d", |
432 ssl_session, ssl_session ? ssl_session->references : 0); | 432 ssl_session, ssl_session ? ssl_session->references : 0); |
433 | 433 |
434 /* ngx_unlock_mutex(rrp->peers->mutex); */ | 434 /* ngx_unlock_mutex(rrp->peers->mutex); */ |
435 | 435 |
436 return rc; | 436 return rc; |
437 } | 437 } |
451 if (ssl_session == NULL) { | 451 if (ssl_session == NULL) { |
452 return; | 452 return; |
453 } | 453 } |
454 | 454 |
455 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, | 455 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, |
456 "save session: %p:%d", ssl_session, ssl_session->references); | 456 "save session: %p:%d", ssl_session, ssl_session->references); |
457 | 457 |
458 peer = &rrp->peers->peer[rrp->current]; | 458 peer = &rrp->peers->peer[rrp->current]; |
459 | 459 |
460 /* TODO: threads only mutex */ | 460 /* TODO: threads only mutex */ |
461 /* ngx_lock_mutex(rrp->peers->mutex); */ | 461 /* ngx_lock_mutex(rrp->peers->mutex); */ |
466 /* ngx_unlock_mutex(rrp->peers->mutex); */ | 466 /* ngx_unlock_mutex(rrp->peers->mutex); */ |
467 | 467 |
468 if (old_ssl_session) { | 468 if (old_ssl_session) { |
469 | 469 |
470 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, | 470 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, |
471 "old session: %p:%d", | 471 "old session: %p:%d", |
472 old_ssl_session, old_ssl_session->references); | 472 old_ssl_session, old_ssl_session->references); |
473 | 473 |
474 /* TODO: may block */ | 474 /* TODO: may block */ |
475 | 475 |
476 ngx_ssl_free_session(old_ssl_session); | 476 ngx_ssl_free_session(old_ssl_session); |