]> git.kaiwu.me - nginx.git/commit
Event pipe: disabled c->read->available checking for SSL.
authorMaxim Dounin <mdounin@mdounin.ru>
Thu, 17 Oct 2019 13:02:03 +0000 (16:02 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Thu, 17 Oct 2019 13:02:03 +0000 (16:02 +0300)
commit60609f2372f62628191bf01ed856a46cd488921b
tree4ce6f5cfca54d0762e8d10f34465411143abcd4f
parent3c84e4b70584b78e6a34a3233465cfa99d26b107
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.
src/event/ngx_event_pipe.c