diff --git a/mongoose.c b/mongoose.c index 49201e4bec9e082c7e5f60abd15512c824bcc1f3..380871d15078f76449137eb24db5f6a5938685bc 100644 --- a/mongoose.c +++ b/mongoose.c @@ -3883,7 +3883,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) {