diff options
author | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2023-12-02 22:48:17 +0300 |
---|---|---|
committer | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2023-12-02 22:48:17 +0300 |
commit | da9505598c515f42fa56e4fd4ac432d1b32cc565 (patch) | |
tree | 71a38bf984dbe5bc10013685c38b153b34ae7e9e | |
parent | f6e4e13e92a2831787d90ceec3e716935a471bb4 (diff) | |
download | libmicrohttpd-da9505598c515f42fa56e4fd4ac432d1b32cc565.tar.gz libmicrohttpd-da9505598c515f42fa56e4fd4ac432d1b32cc565.zip |
Fixed epoll processing of "Upgraded" connections broken by 38599d9fab185d2673674ac3b109f73d284e7127
-rw-r--r-- | src/microhttpd/daemon.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c index 1dc2a3bd..b758882a 100644 --- a/src/microhttpd/daemon.c +++ b/src/microhttpd/daemon.c | |||
@@ -5334,11 +5334,14 @@ is_urh_ready (struct MHD_UpgradeResponseHandle *const urh) | |||
5334 | return false; | 5334 | return false; |
5335 | if (connection->daemon->shutdown) | 5335 | if (connection->daemon->shutdown) |
5336 | return true; | 5336 | return true; |
5337 | if ( ( (0 != (MHD_EPOLL_STATE_READ_READY & urh->app.celi)) || | 5337 | if ( ( (0 != ((MHD_EPOLL_STATE_READ_READY | MHD_EPOLL_STATE_ERROR) |
5338 | & urh->app.celi)) || | ||
5338 | (connection->tls_read_ready) ) && | 5339 | (connection->tls_read_ready) ) && |
5339 | (urh->in_buffer_used < urh->in_buffer_size) ) | 5340 | (urh->in_buffer_used < urh->in_buffer_size) ) |
5340 | return true; | 5341 | return true; |
5341 | if ( (0 != (MHD_EPOLL_STATE_READ_READY & urh->mhd.celi)) && | 5342 | if ( ( (0 != ((MHD_EPOLL_STATE_READ_READY | MHD_EPOLL_STATE_ERROR) |
5343 | & urh->mhd.celi)) || | ||
5344 | urh->was_closed) && | ||
5342 | (urh->out_buffer_used < urh->out_buffer_size) ) | 5345 | (urh->out_buffer_used < urh->out_buffer_size) ) |
5343 | return true; | 5346 | return true; |
5344 | if ( (0 != (MHD_EPOLL_STATE_WRITE_READY & urh->app.celi)) && | 5347 | if ( (0 != (MHD_EPOLL_STATE_WRITE_READY & urh->app.celi)) && |