]> 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)
commitc83922b18ddc83f654c1d0df48a6ca1ee9938078
tree19dda4ce5c6028dd11770e812eb1dfa1e2ac5758
parentcce39344610ce83956379d369cf42a514d5bc258
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