comparison src/http/modules/ngx_http_fastcgi_module.c @ 364:a39aab45a53f NGINX_0_6_26

nginx 0.6.26 *) Bugfix: the "proxy_store" and "fastcgi_store" directives did not check a response length. *) Bugfix: a segmentation fault occurred in worker process, if big value was used in a "expires" directive. Thanks to Joaquin Cuenca Abela. *) Bugfix: nginx incorrectly detected cache line size on Pentium 4. Thanks to Gena Makhomed. *) Bugfix: in proxied or FastCGI subrequests a client original method was used instead of the GET method. *) Bugfix: socket leak in HTTPS mode if deferred accept was used. Thanks to Ben Maurer. *) Bugfix: nginx issued the bogus error message "SSL_shutdown() failed (SSL: )"; bug appeared in 0.6.23. *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" error; bug appeared in 0.6.23.
author Igor Sysoev <http://sysoev.ru>
date Mon, 11 Feb 2008 00:00:00 +0300
parents b743d290eb3b
children 9a242235a80a
comparison
equal deleted inserted replaced
363:6999caedb665 364:a39aab45a53f
131 131
132 static char *ngx_http_fastcgi_upstream_max_fails_unsupported(ngx_conf_t *cf, 132 static char *ngx_http_fastcgi_upstream_max_fails_unsupported(ngx_conf_t *cf,
133 ngx_command_t *cmd, void *conf); 133 ngx_command_t *cmd, void *conf);
134 static char *ngx_http_fastcgi_upstream_fail_timeout_unsupported(ngx_conf_t *cf, 134 static char *ngx_http_fastcgi_upstream_fail_timeout_unsupported(ngx_conf_t *cf,
135 ngx_command_t *cmd, void *conf); 135 ngx_command_t *cmd, void *conf);
136
137
138 static ngx_http_fastcgi_request_start_t ngx_http_fastcgi_request_start = {
139 { 1, /* version */
140 NGX_HTTP_FASTCGI_BEGIN_REQUEST, /* type */
141 0, /* request_id_hi */
142 1, /* request_id_lo */
143 0, /* content_length_hi */
144 sizeof(ngx_http_fastcgi_begin_request_t), /* content_length_lo */
145 0, /* padding_length */
146 0 }, /* reserved */
147
148 { 0, /* role_hi */
149 NGX_HTTP_FASTCGI_RESPONDER, /* role_lo */
150 0, /* NGX_HTTP_FASTCGI_KEEP_CONN */ /* flags */
151 { 0, 0, 0, 0, 0 } }, /* reserved[5] */
152
153 { 1, /* version */
154 NGX_HTTP_FASTCGI_PARAMS, /* type */
155 0, /* request_id_hi */
156 1 }, /* request_id_lo */
157
158 };
159
160
161 static ngx_str_t ngx_http_fastcgi_script_name =
162 ngx_string("fastcgi_script_name");
163 136
164 137
165 static ngx_conf_post_t ngx_http_fastcgi_lowat_post = 138 static ngx_conf_post_t ngx_http_fastcgi_lowat_post =
166 { ngx_http_fastcgi_lowat_check }; 139 { ngx_http_fastcgi_lowat_check };
167 140
410 NULL, /* exit master */ 383 NULL, /* exit master */
411 NGX_MODULE_V1_PADDING 384 NGX_MODULE_V1_PADDING
412 }; 385 };
413 386
414 387
388 static ngx_http_fastcgi_request_start_t ngx_http_fastcgi_request_start = {
389 { 1, /* version */
390 NGX_HTTP_FASTCGI_BEGIN_REQUEST, /* type */
391 0, /* request_id_hi */
392 1, /* request_id_lo */
393 0, /* content_length_hi */
394 sizeof(ngx_http_fastcgi_begin_request_t), /* content_length_lo */
395 0, /* padding_length */
396 0 }, /* reserved */
397
398 { 0, /* role_hi */
399 NGX_HTTP_FASTCGI_RESPONDER, /* role_lo */
400 0, /* NGX_HTTP_FASTCGI_KEEP_CONN */ /* flags */
401 { 0, 0, 0, 0, 0 } }, /* reserved[5] */
402
403 { 1, /* version */
404 NGX_HTTP_FASTCGI_PARAMS, /* type */
405 0, /* request_id_hi */
406 1 }, /* request_id_lo */
407
408 };
409
410
411 static ngx_str_t ngx_http_fastcgi_script_name =
412 ngx_string("fastcgi_script_name");
413
414
415 static ngx_str_t ngx_http_fastcgi_hide_headers[] = { 415 static ngx_str_t ngx_http_fastcgi_hide_headers[] = {
416 ngx_string("Status"), 416 ngx_string("Status"),
417 ngx_string("X-Accel-Expires"), 417 ngx_string("X-Accel-Expires"),
418 ngx_string("X-Accel-Redirect"), 418 ngx_string("X-Accel-Redirect"),
419 ngx_string("X-Accel-Limit-Rate"), 419 ngx_string("X-Accel-Limit-Rate"),
420 ngx_string("X-Accel-Buffer"), 420 ngx_string("X-Accel-Buffering"),
421 ngx_string("X-Accel-Charset"),
421 ngx_null_string 422 ngx_null_string
422 }; 423 };
423 424
424 425
425 static ngx_int_t 426 static ngx_int_t