comparison src/http/modules/ngx_http_uwsgi_module.c @ 4662:979e0f5b196d stable-1.2

Merge of r4616: r->state fix. Added r->state reset on fastcgi/scgi/uwsgi request start. Failing to do so results in problems if 400 or 414 requests are redirected to fastcgi/scgi/uwsgi upstream, as well as after invalid headers got from upstream. This was already fixed for proxy in r3478, but fastcgi (the only affected protocol at that time) was missed. Reported by Matthieu Tourne.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 04 Jun 2012 10:54:48 +0000
parents 834049edae24
children 4251e72b8bb4
comparison
equal deleted inserted replaced
4661:eb565752dd8e 4662:979e0f5b196d
465 u->create_request = ngx_http_uwsgi_create_request; 465 u->create_request = ngx_http_uwsgi_create_request;
466 u->reinit_request = ngx_http_uwsgi_reinit_request; 466 u->reinit_request = ngx_http_uwsgi_reinit_request;
467 u->process_header = ngx_http_uwsgi_process_status_line; 467 u->process_header = ngx_http_uwsgi_process_status_line;
468 u->abort_request = ngx_http_uwsgi_abort_request; 468 u->abort_request = ngx_http_uwsgi_abort_request;
469 u->finalize_request = ngx_http_uwsgi_finalize_request; 469 u->finalize_request = ngx_http_uwsgi_finalize_request;
470 r->state = 0;
470 471
471 u->buffering = uwcf->upstream.buffering; 472 u->buffering = uwcf->upstream.buffering;
472 473
473 u->pipe = ngx_pcalloc(r->pool, sizeof(ngx_event_pipe_t)); 474 u->pipe = ngx_pcalloc(r->pool, sizeof(ngx_event_pipe_t));
474 if (u->pipe == NULL) { 475 if (u->pipe == NULL) {
881 status->count = 0; 882 status->count = 0;
882 status->start = NULL; 883 status->start = NULL;
883 status->end = NULL; 884 status->end = NULL;
884 885
885 r->upstream->process_header = ngx_http_uwsgi_process_status_line; 886 r->upstream->process_header = ngx_http_uwsgi_process_status_line;
887 r->state = 0;
886 888
887 return NGX_OK; 889 return NGX_OK;
888 } 890 }
889 891
890 892