Sun, 14 Dec 2025 20:37:11 +0100
fix wrong content-length in the access log
| src/server/safs/addlog.c | file | annotate | diff | comparison | revisions | |
| src/server/util/io.c | file | annotate | diff | comparison | revisions |
--- a/src/server/safs/addlog.c Sun Dec 07 20:16:02 2025 +0100 +++ b/src/server/safs/addlog.c Sun Dec 14 20:37:11 2025 +0100 @@ -28,6 +28,7 @@ #include <stdio.h> #include <stdlib.h> +#include <inttypes.h> #include "addlog.h" @@ -35,6 +36,7 @@ #include "../daemon/vserver.h" #include "../daemon/log.h" #include "../util/util.h" +#include "../util/io.h" int common_log(pblock *pb, Session *sn, Request *rq) { NSAPIRequest *request = (NSAPIRequest*)rq; @@ -59,7 +61,7 @@ // hack to get the content length // http_start_response should not modify the header names - char *len = pblock_findval("Content-length", rq->srvhdrs); + int64_t len = httpstream_written(sn->csd); if(!ip) { ip = "-"; @@ -67,9 +69,6 @@ if(!user) { user = "-"; } - if(!len) { - len = "0"; - } // remove trailing line feed cxstring tmstr = cx_str(time); @@ -92,13 +91,13 @@ } fprintf( log->log->file, - "%s - %s [%.*s] \"%s\" %d %s %.*s%s%.*s %.*s%s%.*s\n", + "%s - %s [%.*s] \"%s\" %d %" PRId64 " %.*s%s%.*s %.*s%s%.*s\n", ip, user, (int)tmstr.length, tmstr.ptr, req, - rq->status_num, + (int)rq->status_num, len, refq, "\"", @@ -114,7 +113,7 @@ } else { fprintf( log->log->file, - "%s - %s [%.*s] \"%s\" %d %s\n", + "%s - %s [%.*s] \"%s\" %d %" PRId64 "\n", ip, user, (int)tmstr.length,
--- a/src/server/util/io.c Sun Dec 07 20:16:02 2025 +0100 +++ b/src/server/util/io.c Sun Dec 14 20:37:11 2025 +0100 @@ -387,7 +387,8 @@ IOStream *fd = st->fd; if(!st->chunked_enc) { ssize_t w = fd->write(fd, buf, nbytes); - st->written += w > 0 ? w : 0; + //st->written += w > 0 ? w : 0; + st->written += w; return w; } else { struct iovec io[8];