diff -r e5d96f6b9306 -r 78af44222463 src/server/daemon/httprequest.c --- a/src/server/daemon/httprequest.c Tue Nov 01 20:39:41 2022 +0100 +++ b/src/server/daemon/httprequest.c Tue Nov 01 20:46:15 2022 +0100 @@ -614,6 +614,16 @@ rq->rq.rq_attr.keep_alive = 0; } + char *response_content_length = pblock_findkeyval(pb_key_content_length, rq->rq.srvhdrs); + int64_t response_ctlen; + if(response_content_length && util_strtoint(response_content_length, &response_ctlen)) { + int64_t w = httpstream_written(sn->sn.csd); + if(w != response_ctlen) { + log_ereport(LOG_WARN, "nsapi_finish_request: content-length != number of bytes written"); + rq->rq.rq_attr.keep_alive = 0; // fatal io error, we can not safely reuse the connection + } + } + if(rq->rq.rq_attr.keep_alive) { SessionHandler *sh = sn->connection->session_handler; sh->keep_alive(sh, sn->connection);