Mercurial > hg > nginx-vendor-0-5
comparison src/http/ngx_http_core_module.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 | 56675f002600 |
children | f70f2f565fe0 |
comparison
equal
deleted
inserted
replaced
323:85aeb2da6e4c | 324:7cf404023f50 |
---|---|
618 | 618 |
619 ngx_int_t | 619 ngx_int_t |
620 ngx_http_core_find_config_phase(ngx_http_request_t *r, | 620 ngx_http_core_find_config_phase(ngx_http_request_t *r, |
621 ngx_http_phase_handler_t *ph) | 621 ngx_http_phase_handler_t *ph) |
622 { | 622 { |
623 u_char *p; | |
624 size_t len; | |
623 ngx_int_t rc; | 625 ngx_int_t rc; |
624 ngx_http_core_loc_conf_t *clcf; | 626 ngx_http_core_loc_conf_t *clcf; |
625 ngx_http_core_srv_conf_t *cscf; | 627 ngx_http_core_srv_conf_t *cscf; |
626 | 628 |
627 r->content_handler = NULL; | 629 r->content_handler = NULL; |
678 /* | 680 /* |
679 * we do not need to set the r->headers_out.location->hash and | 681 * we do not need to set the r->headers_out.location->hash and |
680 * r->headers_out.location->key fields | 682 * r->headers_out.location->key fields |
681 */ | 683 */ |
682 | 684 |
683 r->headers_out.location->value = clcf->name; | 685 if (r->args.len == 0) { |
686 r->headers_out.location->value = clcf->name; | |
687 | |
688 } else { | |
689 len = clcf->name.len + 1 + r->args.len; | |
690 p = ngx_palloc(r->pool, len); | |
691 | |
692 if (p == NULL) { | |
693 ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); | |
694 return NGX_OK; | |
695 } | |
696 | |
697 r->headers_out.location->value.len = len; | |
698 r->headers_out.location->value.data = p; | |
699 | |
700 p = ngx_cpymem(p, clcf->name.data, clcf->name.len); | |
701 *p++ = '?'; | |
702 ngx_memcpy(p, r->args.data, r->args.len); | |
703 } | |
684 | 704 |
685 ngx_http_finalize_request(r, NGX_HTTP_MOVED_PERMANENTLY); | 705 ngx_http_finalize_request(r, NGX_HTTP_MOVED_PERMANENTLY); |
686 return NGX_OK; | 706 return NGX_OK; |
687 } | 707 } |
688 | 708 |
2224 /* STUB: getuid() should be cached */ | 2244 /* STUB: getuid() should be cached */ |
2225 ls->port = (getuid() == 0) ? 80 : 8000; | 2245 ls->port = (getuid() == 0) ? 80 : 8000; |
2226 #endif | 2246 #endif |
2227 ls->family = AF_INET; | 2247 ls->family = AF_INET; |
2228 | 2248 |
2229 ls->conf.backlog = -1; | 2249 ls->conf.backlog = NGX_LISTEN_BACKLOG; |
2230 ls->conf.rcvbuf = -1; | 2250 ls->conf.rcvbuf = -1; |
2231 ls->conf.sndbuf = -1; | 2251 ls->conf.sndbuf = -1; |
2232 } | 2252 } |
2233 | 2253 |
2234 if (conf->server_name.data == NULL) { | 2254 if (conf->server_name.data == NULL) { |
2573 ngx_memzero(ls, sizeof(ngx_http_listen_t)); | 2593 ngx_memzero(ls, sizeof(ngx_http_listen_t)); |
2574 | 2594 |
2575 ls->family = AF_INET; | 2595 ls->family = AF_INET; |
2576 ls->addr = u.addr.in_addr; | 2596 ls->addr = u.addr.in_addr; |
2577 ls->port = u.port; | 2597 ls->port = u.port; |
2578 ls->file_name = cf->conf_file->file.name; | 2598 ls->file_name = cf->conf_file->file.name.data; |
2579 ls->line = cf->conf_file->line; | 2599 ls->line = cf->conf_file->line; |
2580 ls->conf.backlog = -1; | 2600 ls->conf.backlog = NGX_LISTEN_BACKLOG; |
2581 ls->conf.rcvbuf = -1; | 2601 ls->conf.rcvbuf = -1; |
2582 ls->conf.sndbuf = -1; | 2602 ls->conf.sndbuf = -1; |
2583 | 2603 |
2584 n = ngx_inet_ntop(AF_INET, &ls->addr, ls->conf.addr, INET_ADDRSTRLEN + 6); | 2604 n = ngx_inet_ntop(AF_INET, &ls->addr, ls->conf.addr, INET_ADDRSTRLEN + 6); |
2585 ngx_sprintf(&ls->conf.addr[n], ":%ui", ls->port); | 2605 ngx_sprintf(&ls->conf.addr[n], ":%ui", ls->port); |