The official NGINX Open Source repository. https://nginx.org/
Find a file
Maxim Dounin 39b84d7a52 Events: fixed EPOLLRDHUP with FIONREAD (ticket #2367).
When reading exactly rev->available bytes, rev->available might become 0
after FIONREAD usage introduction in efd71d49bde0.  On the next call of
ngx_readv_chain() on systems with EPOLLRDHUP this resulted in return without
any actions, that is, with rev->ready set, and this in turn resulted in no
timers set in event pipe, leading to socket leaks.

Fix is to reset rev->ready in ngx_readv_chain() when returning due to
rev->available being 0 with EPOLLRDHUP, much like it is already done in
ngx_unix_recv().  This ensures that if rev->available will become 0, on
systems with EPOLLRDHUP support appropriate EPOLLRDHUP-specific handling
will happen on the next ngx_readv_chain() call.

While here, also synced ngx_readv_chain() to match ngx_unix_recv() and
reset rev->ready when returning due to rev->available being 0 with kqueue.
This is mostly cosmetic change, as rev->ready is anyway reset when
rev->available is set to 0.
2022-07-15 15:19:32 +03:00
auto Configure: recognize arm64 machine name as a synonym for aarch64. 2022-04-29 17:38:01 +04:00
conf MIME: added image/avif type. 2021-10-25 20:49:15 +03:00
contrib Contrib: vim syntax, update core and 3rd party module directives. 2022-06-18 15:54:40 +03:00
docs nginx-1.23.0-RELEASE 2022-06-21 17:25:36 +03:00
misc Updated OpenSSL used for win32 builds. 2022-06-21 17:09:34 +03:00
src Events: fixed EPOLLRDHUP with FIONREAD (ticket #2367). 2022-07-15 15:19:32 +03:00
.hgtags release-1.23.0 tag 2022-06-21 17:25:37 +03:00