Mercurial > hg > nginx-quic
annotate src/misc/ngx_cpp_test_module.cpp @ 8910:f3510cb959d1
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.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 15 Jul 2022 15:19:32 +0300 |
parents | f1e6f65ddfeb |
children |
rev | line source |
---|---|
2157 | 1 |
5761 | 2 // stub module to test header files' C++ compatibility |
2157 | 3 |
4 extern "C" { | |
5 #include <ngx_config.h> | |
6 #include <ngx_core.h> | |
7 #include <ngx_event.h> | |
8 #include <ngx_event_connect.h> | |
9 #include <ngx_event_pipe.h> | |
10 | |
11 #include <ngx_http.h> | |
12 | |
13 #include <ngx_mail.h> | |
14 #include <ngx_mail_pop3_module.h> | |
15 #include <ngx_mail_imap_module.h> | |
16 #include <ngx_mail_smtp_module.h> | |
8180 | 17 |
18 #include <ngx_stream.h> | |
2157 | 19 } |
20 | |
21 // nginx header files should go before other, because they define 64-bit off_t | |
22 // #include <string> | |
23 | |
24 | |
4759
4c36e15651f7
Fixed compilation with -Wmissing-prototypes.
Ruslan Ermilov <ru@nginx.com>
parents:
2157
diff
changeset
|
25 void ngx_cpp_test_handler(void *data); |
4c36e15651f7
Fixed compilation with -Wmissing-prototypes.
Ruslan Ermilov <ru@nginx.com>
parents:
2157
diff
changeset
|
26 |
2157 | 27 void |
28 ngx_cpp_test_handler(void *data) | |
29 { | |
30 return; | |
31 } |