comparison src/http/modules/ngx_http_fastcgi_module.c @ 570:8246d8a2c2be NGINX_0_8_37

nginx 0.8.37 *) Feature: the ngx_http_split_clients_module. *) Feature: the "map" directive supports keys more than 255 characters. *) Bugfix: nginx ignored the "private" and "no-store" values in the "Cache-Control" backend response header line. *) Bugfix: a "stub" parameter of an "include" SSI directive was not used, if empty response has 200 status code. *) Bugfix: if a proxied or FastCGI request was internally redirected to another proxied or FastCGI location, then a segmentation fault might occur in a worker process; the bug had appeared in 0.8.33. Thanks to Yichun Zhang. *) Bugfix: IMAP connections may hang until they timed out while talking to Zimbra server. Thanks to Alan Batie.
author Igor Sysoev <http://sysoev.ru>
date Mon, 17 May 2010 00:00:00 +0400
parents 566e105a89f1
children ff463db0be31
comparison
equal deleted inserted replaced
569:19b134bf21c0 570:8246d8a2c2be
587 } 587 }
588 } 588 }
589 589
590 u = r->upstream; 590 u = r->upstream;
591 591
592 u->schema.len = sizeof("fastcgi://") - 1; 592 ngx_str_set(&u->schema, "fastcgi://");
593 u->schema.data = (u_char *) "fastcgi://";
594
595 u->output.tag = (ngx_buf_tag_t) &ngx_http_fastcgi_module; 593 u->output.tag = (ngx_buf_tag_t) &ngx_http_fastcgi_module;
596 594
597 u->conf = &flcf->upstream; 595 u->conf = &flcf->upstream;
598 596
599 #if (NGX_HTTP_CACHE) 597 #if (NGX_HTTP_CACHE)
1447 u->headers_in.status_n = status; 1445 u->headers_in.status_n = status;
1448 u->headers_in.status_line = *status_line; 1446 u->headers_in.status_line = *status_line;
1449 1447
1450 } else if (u->headers_in.location) { 1448 } else if (u->headers_in.location) {
1451 u->headers_in.status_n = 302; 1449 u->headers_in.status_n = 302;
1452 u->headers_in.status_line.len = 1450 ngx_str_set(&u->headers_in.status_line,
1453 sizeof("302 Moved Temporarily") - 1; 1451 "302 Moved Temporarily");
1454 u->headers_in.status_line.data =
1455 (u_char *) "302 Moved Temporarily";
1456 1452
1457 } else { 1453 } else {
1458 u->headers_in.status_n = 200; 1454 u->headers_in.status_n = 200;
1459 u->headers_in.status_line.len = sizeof("200 OK") - 1; 1455 ngx_str_set(&u->headers_in.status_line, "200 OK");
1460 u->headers_in.status_line.data = (u_char *) "200 OK";
1461 } 1456 }
1462 1457
1463 if (u->state) { 1458 if (u->state) {
1464 u->state->status = u->headers_in.status_n; 1459 u->state->status = u->headers_in.status_n;
1465 } 1460 }
1920 * conf->upstream.uri = { 0, NULL }; 1915 * conf->upstream.uri = { 0, NULL };
1921 * conf->upstream.location = NULL; 1916 * conf->upstream.location = NULL;
1922 * conf->upstream.store_lengths = NULL; 1917 * conf->upstream.store_lengths = NULL;
1923 * conf->upstream.store_values = NULL; 1918 * conf->upstream.store_values = NULL;
1924 * 1919 *
1925 * conf->index.len = 0; 1920 * conf->index.len = { 0, NULL };
1926 * conf->index.data = NULL;
1927 */ 1921 */
1928 1922
1929 conf->upstream.store = NGX_CONF_UNSET; 1923 conf->upstream.store = NGX_CONF_UNSET;
1930 conf->upstream.store_access = NGX_CONF_UNSET_UINT; 1924 conf->upstream.store_access = NGX_CONF_UNSET_UINT;
1931 conf->upstream.buffering = NGX_CONF_UNSET; 1925 conf->upstream.buffering = NGX_CONF_UNSET;