mirror of
https://github.com/nginx/nginx.git
synced 2024-12-28 09:51:04 -06:00
Event pipe: disabled c->read->available checking for SSL.
In SSL connections, data can be buffered by the SSL layer, and it is wrong to avoid doing c->recv_chain() if c->read->available is 0 and c->read->pending_eof is set. And tests show that the optimization in question indeed can result in incorrect detection of premature connection close if upstream closes the connection without sending a close notify alert at the same time. Fix is to disable c->read->available optimization for SSL connections.
This commit is contained in:
parent
3c84e4b705
commit
60609f2372
@ -172,7 +172,11 @@ ngx_event_pipe_read_upstream(ngx_event_pipe_t *p)
|
||||
*/
|
||||
|
||||
if (p->upstream->read->available == 0
|
||||
&& p->upstream->read->pending_eof)
|
||||
&& p->upstream->read->pending_eof
|
||||
#if (NGX_SSL)
|
||||
&& !p->upstream->ssl
|
||||
#endif
|
||||
)
|
||||
{
|
||||
p->upstream->read->ready = 0;
|
||||
p->upstream->read->eof = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user