diff --git a/mongoose.c b/mongoose.c index 8ee46058c11354a190f556493239166acb2ea78e..f4ce6c8452439b05d393b5e2187ed89458b32060 100644 --- a/mongoose.c +++ b/mongoose.c @@ -3876,7 +3876,7 @@ unsigned int mg_poll_server(struct mg_server *server, int milliseconds) { if (conn->flags & CONN_LONG_RUNNING) { conn->mg_conn.wsbits = conn->flags & CONN_CLOSE ? 1 : 0; if (call_request_handler(conn) == MG_REQUEST_PROCESSED) { - conn->flags |= CONN_CLOSE; + conn->flags |= conn->remote_iobuf.len == 0 ? CONN_CLOSE : CONN_SPOOL_DONE; } } if (conn->flags & CONN_CLOSE || conn->last_activity_time < expire_time) {