Ticket #1278: ssl-deferred-proxy.patch

File ssl-deferred-proxy.patch, 993 bytes (added by Roman Arutyunyan, 9 years ago)
  • src/event/ngx_event_accept.c

    # 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 b ngx_event_accept(ngx_event_t *ev)  
    238238
    239239        if (ev->deferred_accept) {
    240240            rev->ready = 1;
    241 #if (NGX_HAVE_KQUEUE)
     241#if (NGX_HAVE_KQUEUE || NGX_HAVE_EPOLLRDHUP)
    242242            rev->available = 1;
    243243#endif
    244244        }