src/server/util/io.c

branch
webdav
changeset 354
017eda1be105
parent 336
fb75473fecca
child 361
570026d3a685
--- a/src/server/util/io.c	Wed May 11 20:41:39 2022 +0200
+++ b/src/server/util/io.c	Fri May 13 21:24:45 2022 +0200
@@ -252,8 +252,14 @@
     st->fd = fd;
     st->max_read = 0;
     st->read = 0;
+    st->read_total = 0;
+    st->readbuf = NULL;
+    st->bufsize = 0;
+    st->buflen = NULL;
+    st->bufpos = NULL;
+    st->chunk_buf_pos = 0;
     st->chunked_enc = WS_FALSE;
-    st->chunk_buf_pos = 0;
+    st->read_eof = WS_TRUE;
     return (IOStream*)st;
 }
 
@@ -271,6 +277,7 @@
     http->buflen = cursize;
     http->bufpos = pos;
     http->chunk_buf_pos = 0;
+    http->read_eof = WS_FALSE;
     return 0;
 }
 
@@ -294,6 +301,11 @@
     return 0;
 }
 
+WSBool httpstream_eof(IOStream *st) {
+    HttpStream *http = (HttpStream*)st;
+    return http->read_eof;
+}
+
 ssize_t net_http_write(HttpStream *st, void *buf, size_t nbytes) {
     IOStream *fd = st->fd;
     if(st->chunked_enc) {
@@ -342,6 +354,7 @@
 
 ssize_t net_http_read(HttpStream *st, void *buf, size_t nbytes) {
     if(st->read >= st->max_read) {
+        st->read_eof = WS_TRUE;
         return 0;
     }
     ssize_t r = st->fd->read(st->fd, buf, nbytes);

mercurial