diff --git a/src/chunk.c b/src/chunk.c index 91a30642..95a5b245 100644 --- a/src/chunk.c +++ b/src/chunk.c @@ -446,6 +446,12 @@ void chunkqueue_use_memory(chunkqueue * const restrict cq, chunk *ckpt, size_t l *(ckpt ? &ckpt->next : &cq->first) = NULL; } +void chunkqueue_update_file(chunkqueue * const restrict cq, chunk *c, off_t len) { + /*assert(c->type == FILE_CHUNK);*/ + c->file.length += len; + cq->bytes_in += len; +} + void chunkqueue_set_tempdirs_default (const array *tempdirs, off_t upload_temp_file_size) { chunkqueue_default_tempdirs = tempdirs; chunkqueue_default_tempfile_size diff --git a/src/chunk.h b/src/chunk.h index 9603fb48..315aba90 100644 --- a/src/chunk.h +++ b/src/chunk.h @@ -105,6 +105,7 @@ __attribute_returns_nonnull__ char * chunkqueue_get_memory(chunkqueue * restrict cq, size_t * restrict len); /* commit len bytes of mem obtained from chunkqueue_get_memory() */ void chunkqueue_use_memory(chunkqueue * restrict cq, chunk *ckpt, size_t len); +void chunkqueue_update_file(chunkqueue * restrict cq, chunk *c, off_t len); /* mark first "len" bytes as written (incrementing chunk offsets) * and remove finished chunks diff --git a/src/mod_ssi.c b/src/mod_ssi.c index 721d5c67..03d2f6ee 100644 --- a/src/mod_ssi.c +++ b/src/mod_ssi.c @@ -816,7 +816,7 @@ static int process_ssi_stmt(request_st * const r, handler_ctx * const p, const c log_error(errh, __FILE__, __LINE__, "process exited abnormally: %s", cmd); } if (0 == fstat(c->file.fd, &stb)) { - c->file.length = stb.st_size; + chunkqueue_update_file(cq, c, stb.st_size); } }