]> git.kaiwu.me - nginx.git/commit
Fixed deferred accept with EPOLLRDHUP enabled (ticket #1278).
authorRoman Arutyunyan <arut@nginx.com>
Wed, 24 May 2017 10:17:08 +0000 (13:17 +0300)
committerRoman Arutyunyan <arut@nginx.com>
Wed, 24 May 2017 10:17:08 +0000 (13:17 +0300)
commit67635190b3e74f6dc6b90ab53ca78ae490e6adc1
tree64f86ec1e088260ecab5104e4c43dacf157792a4
parentb97145ae6c3fa65b59bff5cb08f72e554c558104
Fixed deferred accept with EPOLLRDHUP enabled (ticket #1278).

Previously, the read event of the accepted connection was marked ready, but not
available.  This made EPOLLRDHUP-related code (for example, in ngx_unix_recv())
expect more data from the socket, leading to unexpected behavior.

For example, if SSL, PROXY protocol and deferred accept were enabled on a listen
socket, the client connection was aborted due to unexpected return value of
c->recv().
src/event/ngx_event_accept.c