aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2023-12-02 22:48:17 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2023-12-02 22:48:17 +0300
commitda9505598c515f42fa56e4fd4ac432d1b32cc565 (patch)
tree71a38bf984dbe5bc10013685c38b153b34ae7e9e
parentf6e4e13e92a2831787d90ceec3e716935a471bb4 (diff)
downloadlibmicrohttpd-da9505598c515f42fa56e4fd4ac432d1b32cc565.tar.gz
libmicrohttpd-da9505598c515f42fa56e4fd4ac432d1b32cc565.zip
Fixed epoll processing of "Upgraded" connections broken by 38599d9fab185d2673674ac3b109f73d284e7127
-rw-r--r--src/microhttpd/daemon.c7
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)) &&