comparison src/http/modules/ngx_http_scgi_module.c @ 642:d3cf6c6b0043 NGINX_1_1_5

nginx 1.1.5 *) Feature: the "uwsgi_buffering" and "scgi_buffering" directives. Thanks to Peter Smit. *) Bugfix: non-cacheable responses might be cached if "proxy_cache_bypass" directive was used. Thanks to John Ferlito. *) Bugfix: in HTTP/1.1 support in the ngx_http_proxy_module. *) Bugfix: cached responses with an empty body were returned incorrectly; the bug had appeared in 0.8.31. *) Bugfix: 201 responses of the ngx_http_dav_module were incorrect; the bug had appeared in 0.8.32. *) Bugfix: in the "return" directive. *) Bugfix: the "ssl_session_cache builtin" directive caused segmentation fault; the bug had appeared in 1.1.1.
author Igor Sysoev <http://sysoev.ru>
date Wed, 05 Oct 2011 00:00:00 +0400
parents 23ef0645ea57
children f200748c0ac8
comparison
equal deleted inserted replaced
641:6c19b251b926 642:d3cf6c6b0043
92 { ngx_string("scgi_store_access"), 92 { ngx_string("scgi_store_access"),
93 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE123, 93 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE123,
94 ngx_conf_set_access_slot, 94 ngx_conf_set_access_slot,
95 NGX_HTTP_LOC_CONF_OFFSET, 95 NGX_HTTP_LOC_CONF_OFFSET,
96 offsetof(ngx_http_scgi_loc_conf_t, upstream.store_access), 96 offsetof(ngx_http_scgi_loc_conf_t, upstream.store_access),
97 NULL },
98
99 { ngx_string("scgi_buffering"),
100 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
101 ngx_conf_set_flag_slot,
102 NGX_HTTP_LOC_CONF_OFFSET,
103 offsetof(ngx_http_scgi_loc_conf_t, upstream.buffering),
97 NULL }, 104 NULL },
98 105
99 { ngx_string("scgi_ignore_client_abort"), 106 { ngx_string("scgi_ignore_client_abort"),
100 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, 107 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
101 ngx_conf_set_flag_slot, 108 ngx_conf_set_flag_slot,
410 u->reinit_request = ngx_http_scgi_reinit_request; 417 u->reinit_request = ngx_http_scgi_reinit_request;
411 u->process_header = ngx_http_scgi_process_status_line; 418 u->process_header = ngx_http_scgi_process_status_line;
412 u->abort_request = ngx_http_scgi_abort_request; 419 u->abort_request = ngx_http_scgi_abort_request;
413 u->finalize_request = ngx_http_scgi_finalize_request; 420 u->finalize_request = ngx_http_scgi_finalize_request;
414 421
415 u->buffering = 1; 422 u->buffering = scf->upstream.buffering;
416 423
417 u->pipe = ngx_pcalloc(r->pool, sizeof(ngx_event_pipe_t)); 424 u->pipe = ngx_pcalloc(r->pool, sizeof(ngx_event_pipe_t));
418 if (u->pipe == NULL) { 425 if (u->pipe == NULL) {
419 return NGX_HTTP_INTERNAL_SERVER_ERROR; 426 return NGX_HTTP_INTERNAL_SERVER_ERROR;
420 } 427 }
1036 conf->upstream.intercept_errors = NGX_CONF_UNSET; 1043 conf->upstream.intercept_errors = NGX_CONF_UNSET;
1037 1044
1038 /* "scgi_cyclic_temp_file" is disabled */ 1045 /* "scgi_cyclic_temp_file" is disabled */
1039 conf->upstream.cyclic_temp_file = 0; 1046 conf->upstream.cyclic_temp_file = 0;
1040 1047
1048 conf->upstream.change_buffering = 1;
1049
1041 ngx_str_set(&conf->upstream.module, "scgi"); 1050 ngx_str_set(&conf->upstream.module, "scgi");
1042 1051
1043 return conf; 1052 return conf;
1044 } 1053 }
1045 1054