comparison src/http/modules/ngx_http_proxy_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 26ff8d6b618d
comparison
equal deleted inserted replaced
323:85aeb2da6e4c 324:7cf404023f50
551 unparsed_uri = 1; 551 unparsed_uri = 1;
552 len += r->unparsed_uri.len; 552 len += r->unparsed_uri.len;
553 553
554 } else { 554 } else {
555 unparsed_uri = 0; 555 unparsed_uri = 0;
556 if (r->quoted_uri) { 556 if (r->quoted_uri || r->internal) {
557 escape = 2 * ngx_escape_uri(NULL, r->uri.data + loc_len, 557 escape = 2 * ngx_escape_uri(NULL, r->uri.data + loc_len,
558 r->uri.len - loc_len, NGX_ESCAPE_URI); 558 r->uri.len - loc_len, NGX_ESCAPE_URI);
559 } 559 }
560 560
561 len += r->uri.len - loc_len + escape + sizeof("?") - 1 + r->args.len; 561 len += r->uri.len - loc_len + escape + sizeof("?") - 1 + r->args.len;
1139 if (h->key.len == r->lowcase_index) { 1139 if (h->key.len == r->lowcase_index) {
1140 ngx_memcpy(h->lowcase_key, r->lowcase_header, h->key.len); 1140 ngx_memcpy(h->lowcase_key, r->lowcase_header, h->key.len);
1141 1141
1142 } else { 1142 } else {
1143 for (i = 0; i < h->key.len; i++) { 1143 for (i = 0; i < h->key.len; i++) {
1144 h->lowcase_key[i] = ngx_tolower(h->lowcase_key[i]); 1144 h->lowcase_key[i] = ngx_tolower(h->key.data[i]);
1145 } 1145 }
1146 } 1146 }
1147 1147
1148 hh = ngx_hash_find(&umcf->headers_in_hash, h->hash, 1148 hh = ngx_hash_find(&umcf->headers_in_hash, h->hash,
1149 h->lowcase_key, h->key.len); 1149 h->lowcase_key, h->key.len);
2235 plcf->host_header = u.host; 2235 plcf->host_header = u.host;
2236 2236
2237 if (port == 80) { 2237 if (port == 80) {
2238 plcf->port.len = sizeof("80") - 1; 2238 plcf->port.len = sizeof("80") - 1;
2239 plcf->port.data = (u_char *) "80"; 2239 plcf->port.data = (u_char *) "80";
2240
2240 } else { 2241 } else {
2241 plcf->port.len = sizeof("443") - 1; 2242 plcf->port.len = sizeof("443") - 1;
2242 plcf->port.data = (u_char *) "443"; 2243 plcf->port.data = (u_char *) "443";
2243 } 2244 }
2244 2245