libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/microhttpd/daemon.c | 7+++++--
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)) &&