src/server/daemon/httprequest.c

branch
webdav
changeset 354
017eda1be105
parent 339
f4a34b0869c7
child 360
79ddd772e807
--- 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);

mercurial