--- 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);