# HG changeset patch
# User Roman Arutyunyan <arut@nginx.com>
# Date 1495537655 -10800
#      Tue May 23 14:07:35 2017 +0300
# Node ID 2b5c898c3cd0e9c59685e632500e7d2def45e627
# Parent  7943298d4ac09aae83ca8eef09bcf0a12c310505
Mark read event available while performing deferred accept.

Previously, the event was marked ready, but not available.  This made
EPOLLRDHUP-related code (for example, in ngx_unix_recv()) expect more data from
socket.  If SSL and PROXY protocol and deferred accept are enabled on a listen
socket, this lead to socket error.

diff -r 7943298d4ac0 -r 2b5c898c3cd0 src/event/ngx_event_accept.c
--- a/src/event/ngx_event_accept.c	Mon May 22 16:34:47 2017 +0300
+++ b/src/event/ngx_event_accept.c	Tue May 23 14:07:35 2017 +0300
@@ -238,7 +238,7 @@ ngx_event_accept(ngx_event_t *ev)
 
         if (ev->deferred_accept) {
             rev->ready = 1;
-#if (NGX_HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE || NGX_HAVE_EPOLLRDHUP)
             rev->available = 1;
 #endif
         }
