commit da9505598c515f42fa56e4fd4ac432d1b32cc565
parent f6e4e13e92a2831787d90ceec3e716935a471bb4
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Sat, 2 Dec 2023 22:48:17 +0300
Fixed epoll processing of "Upgraded" connections broken by 38599d9fab185d2673674ac3b109f73d284e7127
Diffstat:
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
@@ -5334,11 +5334,14 @@ is_urh_ready (struct MHD_UpgradeResponseHandle *const urh)
return false;
if (connection->daemon->shutdown)
return true;
- if ( ( (0 != (MHD_EPOLL_STATE_READ_READY & urh->app.celi)) ||
+ if ( ( (0 != ((MHD_EPOLL_STATE_READ_READY | MHD_EPOLL_STATE_ERROR)
+ & urh->app.celi)) ||
(connection->tls_read_ready) ) &&
(urh->in_buffer_used < urh->in_buffer_size) )
return true;
- if ( (0 != (MHD_EPOLL_STATE_READ_READY & urh->mhd.celi)) &&
+ if ( ( (0 != ((MHD_EPOLL_STATE_READ_READY | MHD_EPOLL_STATE_ERROR)
+ & urh->mhd.celi)) ||
+ urh->was_closed) &&
(urh->out_buffer_used < urh->out_buffer_size) )
return true;
if ( (0 != (MHD_EPOLL_STATE_WRITE_READY & urh->app.celi)) &&