Upstream: reading from a client after connection upgrade.

Read event on a client connection might have been disabled during
previous processing, and we at least need to handle events.  Calling
ngx_http_upstream_process_upgraded() is a simpliest way to do it.

Notably this change is needed for select, poll and /dev/poll event
methods.

Previous version of this patch was posted here:
http://mailman.nginx.org/pipermail/nginx/2014-January/041839.html
This commit is contained in:
Maxim Dounin 2014-01-22 16:05:07 +04:00
parent 096bcd03c3
commit c74e23ba3a

View File

@ -2560,11 +2560,7 @@ ngx_http_upstream_upgrade(ngx_http_request_t *r, ngx_http_upstream_t *u)
ngx_http_upstream_process_upgraded(r, 1, 1);
}
if (c->read->ready
|| r->header_in->pos != r->header_in->last)
{
ngx_http_upstream_process_upgraded(r, 0, 1);
}
ngx_http_upstream_process_upgraded(r, 0, 1);
}