diff -r 382d6c221807 -r 017eda1be105 src/server/daemon/httprequest.c --- a/src/server/daemon/httprequest.c Wed May 11 20:41:39 2022 +0200 +++ b/src/server/daemon/httprequest.c Fri May 13 21:24:45 2022 +0200 @@ -379,6 +379,7 @@ if(util_strtoint(ctlen_str, &ctlen)) { netbuf *nb = sn->netbuf; HttpStream *net_io = (HttpStream*)sn->sn.csd; + net_io->read_eof = WS_FALSE; // how many bytes are already read and in the buffer int cur_input_available = nb->cursize - nb->pos; @@ -567,6 +568,18 @@ int nsapi_finish_request(NSAPISession *sn, NSAPIRequest *rq) { request_free_resources(sn, rq); + WSBool read_stream_eof = httpstream_eof(sn->sn.csd); + if(!read_stream_eof) { + log_ereport(LOG_WARN, "request input stream not closed"); + // TODO: clean stream + rq->rq.rq_attr.keep_alive = 0; // workaround + } + if(sn->pos < sn->cursize) { + log_ereport(LOG_WARN, "nsapi_finish_request: TODO: remaining bytes in buffer"); + // TODO: reuse buffer in next request + rq->rq.rq_attr.keep_alive = 0; // workaround + } + if(rq->rq.rq_attr.keep_alive) { SessionHandler *sh = sn->connection->session_handler; sh->keep_alive(sh, sn->connection);